Dictionary Matchers

Matchers of dictionaries.

has_entries

hamcrest.library.collection.isdict_containingentries.has_entries(matcher_dict)

Matches if dictionary contains entries satisfying a dictionary of keys 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_entries({'foo':equal_to(1), 'bar':equal_to(2)})
has_entries({'foo':1, 'bar':2})

has_entries also accepts a list of keyword arguments:

hamcrest.library.collection.isdict_containingentries.has_entries(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_entries(foo=equal_to(1), bar=equal_to(2))
has_entries(foo=1, bar=2)

Finally, has_entries also accepts a list of alternating keys and their value matchers:

hamcrest.library.collection.isdict_containingentries.has_entries(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_entries('foo', equal_to(1), 'bar', equal_to(2))
has_entries('foo', 1, 'bar', 2)

has_entry

hamcrest.library.collection.isdict_containing.has_entry(key_match, value_match)

Matches if dictionary contains key-value entry satisfying a given pair of matchers.

Parameters:
  • key_match – The matcher to satisfy for the key, or an expected value for equal_to matching.
  • value_match – The matcher to satisfy for the value, or an expected value for equal_to matching.

This matcher iterates the evaluated dictionary, searching for any key-value entry that satisfies key_match and value_match. If a matching entry is found, has_entry is satisfied.

Any argument that is not a matcher is implicitly wrapped in an equal_to matcher to check for equality.

Examples:

has_entry(equal_to('foo'), equal_to(1))
has_entry('foo', 1)

has_key

hamcrest.library.collection.isdict_containingkey.has_key(key_match)

Matches if dictionary contains an entry whose key satisfies a given matcher.

Parameters:key_match – The matcher to satisfy for the key, or an expected value for 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 equal_to matcher to check for equality.

Examples:

has_key(equal_to('foo'))
has_key('foo')

has_value

hamcrest.library.collection.isdict_containingvalue.has_value(value)

Matches if dictionary contains an entry whose value satisfies a given matcher.

Parameters:value_match – The matcher to satisfy for the value, or an expected value for equal_to matching.

This matcher iterates the evaluated dictionary, searching for any key-value entry whose value satisfies the given matcher. If a matching entry is found, has_value is satisfied.

Any argument that is not a matcher is implicitly wrapped in an equal_to matcher to check for equality.

Examples:

has_value(equal_to('bar'))
has_value('bar')