diff options
author | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-05-24 19:39:36 +0300 |
---|---|---|
committer | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-05-24 19:39:36 +0300 |
commit | 35cc60add498c5117afaf31bef949ac7e281b182 (patch) | |
tree | 1071310c216b15ea4bc9c5037cc964d9e06db692 /contrib/python/PyHamcrest/hamcrest/library/integration | |
parent | e62a28e708a9c85b312652ff618f8a64d17b2dbc (diff) | |
download | ydb-35cc60add498c5117afaf31bef949ac7e281b182.tar.gz |
intermediate changes
ref:17a230a3419e9a5f0286356df636f0071dc757b6
Diffstat (limited to 'contrib/python/PyHamcrest/hamcrest/library/integration')
-rw-r--r-- | contrib/python/PyHamcrest/hamcrest/library/integration/__init__.py | 8 | ||||
-rw-r--r-- | contrib/python/PyHamcrest/hamcrest/library/integration/match_equality.py | 42 |
2 files changed, 50 insertions, 0 deletions
diff --git a/contrib/python/PyHamcrest/hamcrest/library/integration/__init__.py b/contrib/python/PyHamcrest/hamcrest/library/integration/__init__.py new file mode 100644 index 0000000000..cc1e132163 --- /dev/null +++ b/contrib/python/PyHamcrest/hamcrest/library/integration/__init__.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +"""Utilities for integrating Hamcrest with other libraries.""" + +from .match_equality import match_equality + +__author__ = "Jon Reid" +__copyright__ = "Copyright 2011 hamcrest.org" +__license__ = "BSD, see License.txt" 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)) |