~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/registry.py

  • Committer: John Arbash Meinel
  • Date: 2008-07-22 21:47:13 UTC
  • mto: (3697.7.4 1.7)
  • mto: This revision was merged to the branch mainline in revision 3748.
  • Revision ID: john@arbash-meinel.com-20080722214713-xpdvsv1aixxq05tn
Test the case where BASE is missing a file that is present in THIS, OTHER and all LCAs.
Also include both the case where the file is modified, and where it isn't.

Show diffs side-by-side

added added

removed removed

Lines of Context:
69
69
        self._obj = obj
70
70
        self._imported = True
71
71
 
 
72
    def __repr__(self):
 
73
        return "<%s.%s object at %x, module=%r attribute=%r>" % (
 
74
            self.__class__.__module__, self.__class__.__name__, id(self),
 
75
            self._module_name, self._member_name)
 
76
 
72
77
 
73
78
class Registry(object):
74
79
    """A class that registers objects to a name.
162
167
        """
163
168
        return self._dict[self._get_key_or_default(key)].get_obj()
164
169
 
 
170
    def get_prefix(self, fullname):
 
171
        """Return an object whose key is a prefix of the supplied value.
 
172
 
 
173
        :fullname: The name to find a prefix for
 
174
        :return: a tuple of (object, remainder), where the remainder is the
 
175
            portion of the name that did not match the key.
 
176
        """
 
177
        for key, value in self.iteritems():
 
178
            if fullname.startswith(key):
 
179
                return value, fullname[len(key):]
 
180
 
165
181
    def _get_key_or_default(self, key=None):
166
182
        """Return either 'key' or the default key if key is None"""
167
183
        if key is not None: