def test_contains_exactly_does_not_write_to_mismatch_output_if_it_matches(): mismatch_output = [] assert contains_exactly().matches([], mismatch_output) assert contains_exactly().matches((), mismatch_output) assert contains_exactly(equal_to(42), equal_to(9)).matches([42, 9], mismatch_output) assert contains_exactly(equal_to(42), equal_to(9)).matches([9, 42], mismatch_output) assert not mismatch_output
def test_contains_exactly_writes_extra_elements_to_mismatch_output(): mismatch_output = [] contains_exactly(equal_to(42), equal_to(9)).matches([42, 1, 9, "eggs"], mismatch_output) assert_equals(["iterable contained extra elements: 1, 'eggs' (got: [42, 1, 9, 'eggs'])"], mismatch_output)
def test_contains_exactly_writes_not_iterable_to_mismatch_output_if_not_passed_an_iterable(): mismatch_output = [] contains_exactly(equal_to(42), equal_to(9)).matches(None, mismatch_output) assert_equals(["was not iterable (got: None)"], mismatch_output)
def test_contains_exactly_describes_missing_element_in_mismatch_output(): mismatch_output = [] contains_exactly(equal_to(42), equal_to(9)).matches([42], mismatch_output) assert_equals(["iterable did not contain element: 9 (got: [42])"], mismatch_output)
def test_contains_exactly_describes_all_sub_matchers(): assert_equals(str(contains_exactly(equal_to(42), equal_to(9))), "<iterable containing exactly: 42, 9>")
def test_not_writes_matcher_as_mismatch_description(): mismatch_output = [] not_(equal_to("Blah")).matches("Blah", mismatch_output) assert_equals(["got value matching: 'Blah'"], mismatch_output)
def test_contains_exactly_matches_any_collection_with_only_those_elements_in_any_order(): assert contains_exactly(equal_to(42), equal_to(9)).matches([42, 9], []) assert contains_exactly(equal_to(42), equal_to(9)).matches(set([42, 9]), []) assert contains_exactly(equal_to(42), equal_to(9)).matches([9, 42], []) assert not contains_exactly(equal_to(42), equal_to(9)).matches([42], []) assert not contains_exactly(equal_to(42), equal_to(9)).matches([9], []) assert not contains_exactly(equal_to(42), equal_to(9)).matches([], []) assert not contains_exactly(equal_to(42), equal_to(9)).matches([42, 9, 1], [])
def test_not_to_str_prefixes_not_to_matcher_description(): assert_equals(str(not_(equal_to("Blah"))), "not 'Blah'")
def test_not_does_not_write_to_mismatch_output_if_it_matches(): mismatch_output = [] assert not_(equal_to(1)).matches("Blah", mismatch_output) assert not_(equal_to("Blah")).matches(1, mismatch_output) assert not mismatch_output
def test_not_negates_given_matcher(): assert not not_(equal_to(1)).matches(1, []) assert not not_(equal_to("Blah")).matches("Blah", []) assert not_(equal_to(1)).matches("Blah", []) assert not_(equal_to("Blah")).matches(1, [])
def test_equal_to_writes_str_of_non_matching_values_to_mismatch_output(): mismatch_output = [] equal_to("banana").matches("coconut", mismatch_output) assert_equals(["got 'coconut'"], mismatch_output)
def test_equal_to_does_not_write_to_mismatch_output_if_it_matches(): mismatch_output = [] assert equal_to("durian").matches("durian", mismatch_output) assert equal_to(22).matches(22, mismatch_output) assert not mismatch_output
def test_equal_to_str_uses_value_str(): assert_equals(str(equal_to("Blah")), "'Blah'")
def test_equal_to_matches_on_equality(): assert equal_to(1).matches(1, []) assert equal_to("Blah").matches("Blah", []) assert not equal_to(1).matches("Blah", []) assert not equal_to("Blah").matches(1, [])