summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-01-10 04:12:08 -0800
committerGitHub <noreply@github.com>2020-01-10 04:12:08 -0800
commitdf2fb60cf79bf95497cc15a74d657a3a54a53057 (patch)
tree43f2c1490b74cc0389e3b64ad16544a792b8e4a9 /Lib
parent33e033da3c1472b0aa2ae3cff06649a1ae4aa37f (diff)
downloadcpython-git-df2fb60cf79bf95497cc15a74d657a3a54a53057.tar.gz
[3.8] Add test cases for dataclasses. (GH-17909) (GH-17919)
* 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. (cherry picked from commit eef1b027ab70704bcaa60a089e4ae1592c504b86) Co-authored-by: Karthikeyan Singaravelan <tir.karthi@gmail.com> Automerge-Triggered-By: @ericvsmith
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/test/test_dataclasses.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py
index 2f3c531fc2..21a7d7ec3f 100755
--- 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: