diff --git a/changelog/3632.feature.rst b/changelog/3632.feature.rst index 023fa3607..cb1d93750 100644 --- a/changelog/3632.feature.rst +++ b/changelog/3632.feature.rst @@ -1 +1 @@ -Richer equality comparison introspection on ``AssertionError`` for objects created using `attrs `_ or `dataclasses `_ (Python 3.7+, `backported to Python 3.6 `_). +Richer equality comparison introspection on ``AssertionError`` for objects created using `attrs `_ or `dataclasses `_ (Python 3.7+, `backported to 3.6 `_). diff --git a/testing/test_assertion.py b/testing/test_assertion.py index 8ddd96b94..fdcfccfed 100644 --- a/testing/test_assertion.py +++ b/testing/test_assertion.py @@ -552,12 +552,12 @@ class TestAssert_reprcompare(object): class TestAssert_reprcompare_dataclass(object): @pytest.mark.skipif(sys.version_info < (3, 7), reason="Dataclasses in Python3.7+") def test_dataclasses(self): - from dataclasses import dataclass + from dataclasses import dataclass, field @dataclass - class SimpleDataObject: - field_a: int - field_b: str + class SimpleDataObject(object): + field_a = field() + field_b = field() left = SimpleDataObject(1, "b") right = SimpleDataObject(1, "c") @@ -570,12 +570,12 @@ class TestAssert_reprcompare_dataclass(object): @pytest.mark.skipif(sys.version_info < (3, 7), reason="Dataclasses in Python3.7+") def test_dataclasses_verbose(self): - from dataclasses import dataclass + from dataclasses import dataclass, field @dataclass - class SimpleDataObject: - field_a: int - field_b: str + class SimpleDataObject(object): + field_a = field() + field_b = field() left = SimpleDataObject(1, "b") right = SimpleDataObject(1, "c") @@ -590,9 +590,9 @@ class TestAssert_reprcompare_dataclass(object): from dataclasses import dataclass, field @dataclass - class SimpleDataObject: - field_a: int - field_b: str = field(compare=False) + class SimpleDataObject(object): + field_a = field() + field_b = field(compare=False) left = SimpleDataObject(1, "b") right = SimpleDataObject(1, "b") @@ -606,17 +606,17 @@ class TestAssert_reprcompare_dataclass(object): @pytest.mark.skipif(sys.version_info < (3, 7), reason="Dataclasses in Python3.7+") def test_comparing_two_different_data_classes(self): - from dataclasses import dataclass + from dataclasses import dataclass, field @dataclass - class SimpleDataObjectOne: - field_a: int - field_b: str + class SimpleDataObjectOne(object): + field_a = field() + field_b = field() @dataclass - class SimpleDataObjectTwo: - field_a: int - field_b: str + class SimpleDataObjectTwo(object): + field_a = field() + field_b = field() left = SimpleDataObjectOne(1, "b") right = SimpleDataObjectTwo(1, "c") @@ -628,7 +628,7 @@ class TestAssert_reprcompare_dataclass(object): class TestAssert_reprcompare_attrsclass(object): def test_attrs(self): @attr.s - class SimpleDataObject: + class SimpleDataObject(object): field_a = attr.ib() field_b = attr.ib() @@ -643,7 +643,7 @@ class TestAssert_reprcompare_attrsclass(object): def test_attrs_verbose(self): @attr.s - class SimpleDataObject: + class SimpleDataObject(object): field_a = attr.ib() field_b = attr.ib() @@ -657,7 +657,7 @@ class TestAssert_reprcompare_attrsclass(object): def test_attrs_with_attribute_comparison_off(self): @attr.s - class SimpleDataObject: + class SimpleDataObject(object): field_a = attr.ib() field_b = attr.ib(cmp=False) @@ -673,12 +673,12 @@ class TestAssert_reprcompare_attrsclass(object): def test_comparing_two_different_attrs_classes(self): @attr.s - class SimpleDataObjectOne: + class SimpleDataObjectOne(object): field_a = attr.ib() field_b = attr.ib() @attr.s - class SimpleDataObjectTwo: + class SimpleDataObjectTwo(object): field_a = attr.ib() field_b = attr.ib()