diff options
author | Karthikeyan Singaravelan <tir.karthi@gmail.com> | 2020-01-09 13:41:46 (GMT) |
---|---|---|
committer | Eric V. Smith <ericvsmith@users.noreply.github.com> | 2020-01-09 13:41:46 (GMT) |
commit | eef1b027ab70704bcaa60a089e4ae1592c504b86 (patch) | |
tree | 4c3a662252b7f030b0eb7c4749f86d474cbc97d2 /Lib/test/test_dataclasses.py | |
parent | 6c5d661342d12f6836580b0e75e3569c764527ae (diff) | |
download | cpython-eef1b027ab70704bcaa60a089e4ae1592c504b86.zip cpython-eef1b027ab70704bcaa60a089e4ae1592c504b86.tar.gz cpython-eef1b027ab70704bcaa60a089e4ae1592c504b86.tar.bz2 |
Add test cases for dataclasses. (#17909)
* Add test cases for dataclasses.
* Add test for repr output of field.
* Add test for ValueError to be raised when both default and default_factory are passed.
Diffstat (limited to 'Lib/test/test_dataclasses.py')
-rw-r--r-- | Lib/test/test_dataclasses.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index 8f9fb2c..e8fe455 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -45,6 +45,25 @@ class TestCase(unittest.TestCase): o = C(42) self.assertEqual(o.x, 42) + def test_field_default_default_factory_error(self): + msg = "cannot specify both default and default_factory" + with self.assertRaisesRegex(ValueError, msg): + @dataclass + class C: + x: int = field(default=1, default_factory=int) + + def test_field_repr(self): + int_field = field(default=1, init=True, repr=False) + int_field.name = "id" + repr_output = repr(int_field) + expected_output = "Field(name='id',type=None," \ + f"default=1,default_factory={MISSING!r}," \ + "init=True,repr=False,hash=None," \ + "compare=True,metadata=mappingproxy({})," \ + "_field_type=None)" + + self.assertEqual(repr_output, expected_output) + def test_named_init_params(self): @dataclass class C: |