(self)
| 1170 | self.assertTrue(c.c_called) |
| 1171 | |
| 1172 | def test_class_var(self): |
| 1173 | # Make sure ClassVars are ignored in __init__, __repr__, etc. |
| 1174 | @dataclass |
| 1175 | class C: |
| 1176 | x: int |
| 1177 | y: int = 10 |
| 1178 | z: ClassVar[int] = 1000 |
| 1179 | w: ClassVar[int] = 2000 |
| 1180 | t: ClassVar[int] = 3000 |
| 1181 | s: ClassVar = 4000 |
| 1182 | |
| 1183 | c = C(5) |
| 1184 | self.assertEqual(repr(c), 'TestCase.test_class_var.<locals>.C(x=5, y=10)') |
| 1185 | self.assertEqual(len(fields(C)), 2) # We have 2 fields. |
| 1186 | self.assertEqual(len(C.__annotations__), 6) # And 4 ClassVars. |
| 1187 | self.assertEqual(c.z, 1000) |
| 1188 | self.assertEqual(c.w, 2000) |
| 1189 | self.assertEqual(c.t, 3000) |
| 1190 | self.assertEqual(c.s, 4000) |
| 1191 | C.z += 1 |
| 1192 | self.assertEqual(c.z, 1001) |
| 1193 | c = C(20) |
| 1194 | self.assertEqual((c.x, c.y), (20, 10)) |
| 1195 | self.assertEqual(c.z, 1001) |
| 1196 | self.assertEqual(c.w, 2000) |
| 1197 | self.assertEqual(c.t, 3000) |
| 1198 | self.assertEqual(c.s, 4000) |
| 1199 | |
| 1200 | def test_class_var_no_default(self): |
| 1201 | # If a ClassVar has no default value, it should not be set on the class. |
nothing calls this directly
no test coverage detected