diff --git a/tests/test_annotations.py b/tests/test_annotations.py index 49c9b0d7b..049f5e992 100644 --- a/tests/test_annotations.py +++ b/tests/test_annotations.py @@ -94,6 +94,10 @@ class C: assert 1 == len(attr.fields(C)) assert_init_annotations(C, x=typing.List[int]) + @pytest.mark.skipif( + sys.version_info[:2] < (3, 11), + reason="Incompatible behavior on older Pythons", + ) @pytest.mark.parametrize("slots", [True, False]) def test_auto_attribs(self, slots): """ @@ -149,7 +153,7 @@ class C: x=typing.List[int], y=int, z=int, - foo=typing.Optional[typing.Any], + foo=typing.Any, ) @pytest.mark.parametrize("slots", [True, False]) @@ -384,8 +388,9 @@ def noop(): assert attr.converters.optional(noop).__annotations__ == {} - @pytest.mark.xfail( - sys.version_info[:2] == (3, 6), reason="Does not work on 3.6." + @pytest.mark.skipif( + sys.version_info[:2] < (3, 11), + reason="Incompatible behavior on older Pythons", ) @pytest.mark.parametrize("slots", [True, False]) def test_annotations_strings(self, slots): @@ -417,7 +422,7 @@ class C: x=typing.List[int], y=int, z=int, - foo=typing.Optional[typing.Any], + foo=typing.Any, ) @pytest.mark.parametrize("slots", [True, False]) diff --git a/tests/test_make.py b/tests/test_make.py index d4d8640cd..96e07f333 100644 --- a/tests/test_make.py +++ b/tests/test_make.py @@ -2275,7 +2275,9 @@ class C: def __getstate__(self): return ("hi",) - assert None is getattr(C(), "__setstate__", None) + assert getattr(object, "__setstate__", None) is getattr( + C, "__setstate__", None + ) @attr.s(slots=slots, auto_detect=True) class C: @@ -2291,7 +2293,9 @@ def __setstate__(self, state): i.__setstate__(()) assert True is i.called - assert None is getattr(C(), "__getstate__", None) + assert getattr(object, "__getstate__", None) is getattr( + C, "__getstate__", None + ) @pytest.mark.skipif(PY310, reason="Pre-3.10 only.") def test_match_args_pre_310(self): diff --git a/tests/test_slots.py b/tests/test_slots.py index 5f08d4cd1..de4e90e0b 100644 --- a/tests/test_slots.py +++ b/tests/test_slots.py @@ -660,10 +660,12 @@ def test_no_getstate_setstate_for_dict_classes(self): As long as getstate_setstate is None, nothing is done to dict classes. """ - i = C1(1, 2) - - assert None is getattr(i, "__getstate__", None) - assert None is getattr(i, "__setstate__", None) + assert getattr(object, "__getstate__", None) is getattr( + C1, "__getstate__", None + ) + assert getattr(object, "__setstate__", None) is getattr( + C1, "__setstate__", None + ) def test_no_getstate_setstate_if_option_false(self): """ @@ -674,10 +676,12 @@ def test_no_getstate_setstate_if_option_false(self): class C: x = attr.ib() - i = C(42) - - assert None is getattr(i, "__getstate__", None) - assert None is getattr(i, "__setstate__", None) + assert getattr(object, "__getstate__", None) is getattr( + C, "__getstate__", None + ) + assert getattr(object, "__setstate__", None) is getattr( + C, "__setstate__", None + ) @pytest.mark.parametrize("cls", [C2(1), C2Slots(1)]) def test_getstate_set_state_force_true(self, cls):