~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/url_policy_open.py

  • Committer: Jelmer Vernooij
  • Date: 2012-01-19 00:55:26 UTC
  • mto: (6437.3.23 2.5)
  • mto: This revision was merged to the branch mainline in revision 6451.
  • Revision ID: jelmer@samba.org-20120119005526-q2gst8d3v8qtqpot
Avoid the word safe.

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
class BranchOpenPolicy(object):
56
56
    """Policy on how to open branches.
57
57
 
58
 
    In particular, a policy determines which branches are safe to open by
 
58
    In particular, a policy determines which branches are okay to open by
59
59
    checking their URLs and deciding whether or not to follow branch
60
60
    references.
61
61
    """
85
85
        raise NotImplementedError(self.transform_fallback_location)
86
86
 
87
87
    def check_one_url(self, url):
88
 
        """Check the safety of the source URL.
 
88
        """Check a URL.
89
89
 
90
90
        Subclasses must override this method.
91
91
 
92
92
        :param url: The source URL to check.
93
93
        :raise BadUrl: subclasses are expected to raise this or a subclass
94
 
            when it finds a URL it deems to be unsafe.
 
94
            when it finds a URL it deems to be unacceptable.
95
95
        """
96
96
        raise NotImplementedError(self.check_one_url)
97
97
 
103
103
    with e.g. url encoding. It's mostly useful for tests.
104
104
    """
105
105
 
106
 
    def __init__(self, should_follow_references, unsafe_urls=None):
107
 
        if unsafe_urls is None:
108
 
            unsafe_urls = set()
109
 
        self._unsafe_urls = unsafe_urls
 
106
    def __init__(self, should_follow_references, bad_urls=None):
 
107
        if bad_urls is None:
 
108
            bad_urls = set()
 
109
        self._bad_urls = bad_urls
110
110
        self._should_follow_references = should_follow_references
111
111
 
112
112
    def should_follow_references(self):
113
113
        return self._should_follow_references
114
114
 
115
115
    def check_one_url(self, url):
116
 
        if url in self._unsafe_urls:
 
116
        if url in self._bad_urls:
117
117
            raise BadUrl(url)
118
118
 
119
119
    def transform_fallback_location(self, branch, url):
172
172
        return urlutils.join(branch.base, url), True
173
173
 
174
174
    def check_one_url(self, url):
175
 
        """Check that `url` is safe to open."""
 
175
        """Check that `url` is okay to open."""
176
176
        if urlutils.URL.from_string(str(url)).scheme != self.allowed_scheme:
177
177
            raise BadUrl(url)
178
178
 
220
220
            'BranchOpener.transform_fallback_locationHook')
221
221
 
222
222
    def check_and_follow_branch_reference(self, url):
223
 
        """Check URL (and possibly the referenced URL) for safety.
 
223
        """Check URL (and possibly the referenced URL).
224
224
 
225
225
        This method checks that `url` passes the policy's `check_one_url`
226
226
        method, and if `url` refers to a branch reference, it checks whether
285
285
        return bzrdir.get_branch_reference()
286
286
 
287
287
    def open(self, url):
288
 
        """Open the Bazaar branch at url, first checking for safety.
 
288
        """Open the Bazaar branch at url, first checking it.
289
289
 
290
 
        What safety means is defined by a subclasses `follow_reference` and
 
290
        What is acceptable means is defined by the policy's `follow_reference` and
291
291
        `check_one_url` methods.
292
292
        """
293
293
        if type(url) != str: