Dictionary Matchers

Matchers of dictionaries.

has_entries

class hamcrest.library.collection.isdict_containingentries.IsDictContainingEntries(value_matchers)

Bases: hamcrest.core.base_matcher.BaseMatcher

describe_keyvalue(index, value, description)

Describes key-value pair at given index.

describe_mismatch(item, mismatch_description)

Generates a description of why the matcher has not accepted the item.

The description will be part of a larger description of why a matching failed, so it should be concise.

This method assumes that matches(item) is False, but will not check this.

Parameters:
  • item – The item that the Matcher has rejected.
  • mismatch_description – The description to be built or appended to.
describe_to(description)

Generates a description of the object.

The description may be part of a description of a larger object of which this is just a component, so it should be worded appropriately.

Parameters:description – The description to be built or appended to.
matches(dictionary, mismatch_description=None)

Evaluates the matcher for argument item.

If a mismatch is detected and argument mismatch_description is provided, it will generate a description of why the matcher has not accepted the item.

Parameters:item – The object against which the matcher is evaluated.
Returns:True if item matches, otherwise False.
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

class hamcrest.library.collection.isdict_containing.IsDictContaining(key_matcher, value_matcher)

Bases: hamcrest.core.base_matcher.BaseMatcher

describe_to(description)

Generates a description of the object.

The description may be part of a description of a larger object of which this is just a component, so it should be worded appropriately.

Parameters:description – The description to be built or appended to.
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

class hamcrest.library.collection.isdict_containingkey.IsDictContainingKey(key_matcher)

Bases: hamcrest.core.base_matcher.BaseMatcher

describe_to(description)

Generates a description of the object.

The description may be part of a description of a larger object of which this is just a component, so it should be worded appropriately.

Parameters:description – The description to be built or appended to.
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

class hamcrest.library.collection.isdict_containingvalue.IsDictContainingValue(value_matcher)

Bases: hamcrest.core.base_matcher.BaseMatcher

describe_to(description)

Generates a description of the object.

The description may be part of a description of a larger object of which this is just a component, so it should be worded appropriately.

Parameters:description – The description to be built or appended to.
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')