aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py
diff options
context:
space:
mode:
authorarcadia-devtools <arcadia-devtools@yandex-team.ru>2022-05-24 19:39:36 +0300
committerarcadia-devtools <arcadia-devtools@yandex-team.ru>2022-05-24 19:39:36 +0300
commit35cc60add498c5117afaf31bef949ac7e281b182 (patch)
tree1071310c216b15ea4bc9c5037cc964d9e06db692 /contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py
parente62a28e708a9c85b312652ff618f8a64d17b2dbc (diff)
downloadydb-35cc60add498c5117afaf31bef949ac7e281b182.tar.gz
intermediate changes
ref:17a230a3419e9a5f0286356df636f0071dc757b6
Diffstat (limited to 'contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py')
-rw-r--r--contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py b/contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py
new file mode 100644
index 0000000000..52da054760
--- /dev/null
+++ b/contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py
@@ -0,0 +1,42 @@
+from hamcrest.core.string_description import tostring
+from hamcrest.core.helpers.wrap_matcher import wrap_matcher
+
+__author__ = "Chris Rose"
+__copyright__ = "Copyright 2011 hamcrest.org"
+__license__ = "BSD, see License.txt"
+__unittest = True
+
+
+class EqualityWrapper(object):
+
+ def __init__(self, matcher):
+ self.matcher = matcher
+
+ def __eq__(self, object):
+ return self.matcher.matches(object)
+
+ def __str__(self):
+ return repr(self)
+
+ def __repr__(self):
+ return tostring(self.matcher)
+
+
+def match_equality(matcher):
+ """Wraps a matcher to define equality in terms of satisfying the matcher.
+
+ ``match_equality`` allows Hamcrest matchers to be used in libraries that
+ are not Hamcrest-aware. They might use the equality operator::
+
+ assert match_equality(matcher) == object
+
+ Or they might provide a method that uses equality for its test::
+
+ library.method_that_tests_eq(match_equality(matcher))
+
+ One concrete example is integrating with the ``assert_called_with`` methods
+ in Michael Foord's `mock <http://www.voidspace.org.uk/python/mock/>`_
+ library.
+
+ """
+ return EqualityWrapper(wrap_matcher(matcher))