diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-03-29 16:25:03 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-03-29 18:05:29 +0200 |
commit | 082e7f20d7df457c08119eb41fc2f3f8c09ba7ab (patch) | |
tree | 67ad06fcc3125f3091accdc622c6d5c16515addd /lib/subunit/python/testtools/matchers.py | |
parent | c87332950043471e52b924f7498b63982ec4302c (diff) | |
download | samba-082e7f20d7df457c08119eb41fc2f3f8c09ba7ab.tar.gz samba-082e7f20d7df457c08119eb41fc2f3f8c09ba7ab.tar.bz2 samba-082e7f20d7df457c08119eb41fc2f3f8c09ba7ab.zip |
subunit: Update to newer upstream version.
Diffstat (limited to 'lib/subunit/python/testtools/matchers.py')
-rw-r--r-- | lib/subunit/python/testtools/matchers.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/subunit/python/testtools/matchers.py b/lib/subunit/python/testtools/matchers.py index 244daceb7f..039c84b7c7 100644 --- a/lib/subunit/python/testtools/matchers.py +++ b/lib/subunit/python/testtools/matchers.py @@ -12,6 +12,7 @@ $ python -c 'import testtools.matchers; print testtools.matchers.__all__' __metaclass__ = type __all__ = [ + 'Annotate', 'DocTestMatches', 'Equals', 'MatchesAll', @@ -249,3 +250,33 @@ class MatchedUnexpectedly: def describe(self): return "%r matches %s" % (self.other, self.matcher) + + +class Annotate: + """Annotates a matcher with a descriptive string. + + Mismatches are then described as '<mismatch>: <annotation>'. + """ + + def __init__(self, annotation, matcher): + self.annotation = annotation + self.matcher = matcher + + def __str__(self): + return 'Annotate(%r, %s)' % (self.annotation, self.matcher) + + def match(self, other): + mismatch = self.matcher.match(other) + if mismatch is not None: + return AnnotatedMismatch(self.annotation, mismatch) + + +class AnnotatedMismatch: + """A mismatch annotated with a descriptive string.""" + + def __init__(self, annotation, mismatch): + self.annotation = annotation + self.mismatch = mismatch + + def describe(self): + return '%s: %s' % (self.mismatch.describe(), self.annotation) |