diff options
author | Carl Meyer <carl@oddbird.net> | 2023-01-06 02:08:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-06 02:08:33 (GMT) |
commit | f4888315769a2267d9a1351cf182ebef0ae9c4b5 (patch) | |
tree | a4f6cf5d5edc8df5d90ca7baaade0270f43ad5c9 /Lib/test/test_dataclasses.py | |
parent | d6b8413e94d68649bdd3cac5d441f1cf4609b540 (diff) | |
download | cpython-f4888315769a2267d9a1351cf182ebef0ae9c4b5.zip cpython-f4888315769a2267d9a1351cf182ebef0ae9c4b5.tar.gz cpython-f4888315769a2267d9a1351cf182ebef0ae9c4b5.tar.bz2 |
[3.11] gh-90104: avoid RecursionError on recursive dataclass field repr (gh-100756) (GH-100784)
Avoid RecursionError on recursive dataclass field repr
(cherry picked from commit 0a7936a38f0bab1619ee9fe257880a51c9d839d5)
Automerge-Triggered-By: GH:ericvsmith
Diffstat (limited to 'Lib/test/test_dataclasses.py')
-rw-r--r-- | Lib/test/test_dataclasses.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index 0d809bd..9af4377 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -68,6 +68,24 @@ class TestCase(unittest.TestCase): self.assertEqual(repr_output, expected_output) + def test_field_recursive_repr(self): + rec_field = field() + rec_field.type = rec_field + rec_field.name = "id" + repr_output = repr(rec_field) + + self.assertIn(",type=...,", repr_output) + + def test_recursive_annotation(self): + class C: + pass + + @dataclass + class D: + C: C = field() + + self.assertIn(",type=...,", repr(D.__dataclass_fields__["C"])) + def test_named_init_params(self): @dataclass class C: |