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/collection/isdict_containingkey.py | |
parent | e62a28e708a9c85b312652ff618f8a64d17b2dbc (diff) | |
download | ydb-35cc60add498c5117afaf31bef949ac7e281b182.tar.gz |
intermediate changes
ref:17a230a3419e9a5f0286356df636f0071dc757b6
Diffstat (limited to 'contrib/python/PyHamcrest/hamcrest/library/collection/isdict_containingkey.py')
-rw-r--r-- | contrib/python/PyHamcrest/hamcrest/library/collection/isdict_containingkey.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/python/PyHamcrest/hamcrest/library/collection/isdict_containingkey.py b/contrib/python/PyHamcrest/hamcrest/library/collection/isdict_containingkey.py new file mode 100644 index 0000000000..ccb51e6396 --- /dev/null +++ b/contrib/python/PyHamcrest/hamcrest/library/collection/isdict_containingkey.py @@ -0,0 +1,48 @@ +from hamcrest.core.base_matcher import BaseMatcher +from hamcrest.core.helpers.hasmethod import hasmethod +from hamcrest.core.helpers.wrap_matcher import wrap_matcher + +__author__ = "Jon Reid" +__copyright__ = "Copyright 2011 hamcrest.org" +__license__ = "BSD, see License.txt" + + +class IsDictContainingKey(BaseMatcher): + + def __init__(self, key_matcher): + self.key_matcher = key_matcher + + def _matches(self, dictionary): + if hasmethod(dictionary, 'keys'): + for key in dictionary.keys(): + if self.key_matcher.matches(key): + return True + return False + + def describe_to(self, description): + description.append_text('a dictionary containing key ') \ + .append_description_of(self.key_matcher) + + +def has_key(key_match): + """Matches if dictionary contains an entry whose key satisfies a given + matcher. + + :param key_match: The matcher to satisfy for the key, or an expected value + for :py:func:`~hamcrest.core.core.isequal.equal_to` matching. + + This matcher iterates the evaluated dictionary, searching for any key-value + entry whose key satisfies the given matcher. If a matching entry is found, + ``has_key`` is satisfied. + + Any argument that is not a matcher is implicitly wrapped in an + :py:func:`~hamcrest.core.core.isequal.equal_to` matcher to check for + equality. + + Examples:: + + has_key(equal_to('foo')) + has_key('foo') + + """ + return IsDictContainingKey(wrap_matcher(key_match)) |