Object Matchers¶
Matchers that inspect objects.
See also, Object matcher internals
equal_to¶
has_length¶
- hamcrest.library.object.haslength.has_length(match)¶
Matches if
len(item)
satisfies a given matcher.- Parameters:
match (Union[int, Matcher[int]]) – The matcher to satisfy, or an expected value for
equal_to
matching.- Return type:
This matcher invokes the
len
function on the evaluated object to get its length, passing the result to a given matcher for evaluation.If the
match
argument is not a matcher, it is implicitly wrapped in anequal_to
matcher to check for :equality.Examples:
has_length(greater_than(6)) has_length(5)
has_string¶
- hamcrest.library.object.hasstring.has_string(match)¶
Matches if
str(item)
satisfies a given matcher.- Parameters:
match – The matcher to satisfy, or an expected value for
equal_to
matching.- Return type:
This matcher invokes the
str
function on the evaluated object to get its length, passing the result to a given matcher for evaluation. If thematch
argument is not a matcher, it is implicitly wrapped in anequal_to
matcher to check for equality.Examples:
has_string(starts_with('foo')) has_string('bar')
has_properties/has_property¶
- hamcrest.library.object.hasproperty.has_properties(**keys_valuematchers: Union[Matcher[V], V]) Matcher[Any] ¶
- hamcrest.library.object.hasproperty.has_properties(keys_valuematchers: Mapping[str, Union[Matcher[V], V]]) Matcher[Any]
- hamcrest.library.object.hasproperty.has_properties(*keys_valuematchers: Any) Matcher[Any]
Matches if an object has properties satisfying all of a dictionary of string property names and corresponding value matchers.
- Parameters:
matcher_dict – A dictionary mapping keys to associated value matchers, or to expected values for
equal_to
matching.
Note that the keys must be actual keys, not matchers. Any value argument that is not a matcher is implicitly wrapped in an
equal_to
matcher to check for equality.Examples:
has_properties({'foo':equal_to(1), 'bar':equal_to(2)}) has_properties({'foo':1, 'bar':2})
has_properties
also accepts a list of keyword arguments:- hamcrest.library.object.hasproperty.has_properties(keyword1=value_matcher1[, keyword2=value_matcher2[, ...]])¶
- Parameters:
keyword1 – A keyword to look up.
valueMatcher1 – The matcher to satisfy for the value, or an expected value for
equal_to
matching.
Examples:
has_properties(foo=equal_to(1), bar=equal_to(2)) has_properties(foo=1, bar=2)
Finally,
has_properties
also accepts a list of alternating keys and their value matchers:- hamcrest.library.object.hasproperty.has_properties(key1, value_matcher1[, ...])¶
- Parameters:
key1 – A key (not a matcher) to look up.
valueMatcher1 – The matcher to satisfy for the value, or an expected value for
equal_to
matching.
Examples:
has_properties('foo', equal_to(1), 'bar', equal_to(2)) has_properties('foo', 1, 'bar', 2)
- hamcrest.library.object.hasproperty.has_property(name, match=None)¶
Matches if object has a property with a given name whose value satisfies a given matcher.
- Parameters:
- Return type:
This matcher determines if the evaluated object has a property with a given name. If no such property is found,
has_property
is not satisfied.If the property is found, its value is passed to a given matcher for evaluation. If the
match
argument is not a matcher, it is implicitly wrapped in anequal_to
matcher to check for equality.If the
match
argument is not provided, theanything
matcher is used so thathas_property
is satisfied if a matching property is found.Examples:
has_property('name', starts_with('J')) has_property('name', 'Jon') has_property('name')
instance_of¶
- hamcrest.core.core.isinstanceof.instance_of(atype)¶
Matches if object is an instance of, or inherits from, a given type.
- Parameters:
atype (Type) – The type to compare against as the expected type.
- Return type:
This matcher checks whether the evaluated object is an instance of
atype
or an instance of any class that inherits fromatype
.Example:
instance_of(str)
none, not_none¶
same_instance¶
- hamcrest.core.core.issame.same_instance(obj)¶
Matches if evaluated object is the same instance as a given object.
- Parameters:
obj (T) – The object to compare against as the expected value.
- Return type:
Matcher[T]
This matcher invokes the
is
identity operator to determine if the evaluated object is the the same object asobj
.
calling, raises¶
- hamcrest.core.core.raises.calling(func)¶
Wrapper for function call that delays the actual execution so that
raises
matcher can catch any thrown exception.- Parameters:
func (Callable[[...], Any]) – The function or method to be called
- Return type:
DeferredCallable
The arguments can be provided with a call to the
with_args
function on the returned object:calling(my_method).with_args(arguments, and_='keywords')
- hamcrest.core.core.raises.raises(exception, pattern=None, matching=None)¶
Matches if the called function raised the expected exception.
- Parameters:
- Return type:
Expects the actual to be wrapped by using
calling
, or a callable taking no arguments. Optional argument pattern should be a string containing a regular expression. If provided, the string representation of the actual exception - e.g.str(actual)
- must match pattern.Examples:
assert_that(calling(int).with_args('q'), raises(TypeError)) assert_that(calling(parse, broken_input), raises(ValueError)) assert_that( calling(valid_user, bad_json), raises(HTTPError, matching=has_properties(status_code=500) )