12345678910111213141516171819202122232425262728293031323334353637383940 |
- __author__ = "Chris Rose"
- __copyright__ = "Copyright 2011 hamcrest.org"
- __license__ = "BSD, see License.txt"
- import re
- import six
- from hamcrest.core.base_matcher import BaseMatcher
- from hamcrest.core.helpers.hasmethod import hasmethod
- class StringMatchesPattern(BaseMatcher):
- def __init__(self, pattern):
- self.pattern = pattern
- def describe_to(self, description):
- description.append_text("a string matching '") \
- .append_text(self.pattern.pattern) \
- .append_text("'")
- def _matches(self, item):
- return self.pattern.search(item) is not None
- def matches_regexp(pattern):
- """Matches if object is a string containing a match for a given regular
- expression.
- :param pattern: The regular expression to search for.
- This matcher first checks whether the evaluated object is a string. If so,
- it checks if the regular expression ``pattern`` matches anywhere within the
- evaluated object.
- """
- if isinstance(pattern, six.string_types):
- pattern = re.compile(pattern)
- return StringMatchesPattern(pattern)
|