| 34 | self.assertEqual(f.value, "World") |
| 35 | |
| 36 | def test_partial_init(self): |
| 37 | @signature_has_traits |
| 38 | class Foo(HasTraits): |
| 39 | number1 = Int() |
| 40 | number2 = Int() |
| 41 | value = Unicode("Hello") |
| 42 | |
| 43 | def __init__(self, arg1, **kwargs): |
| 44 | self.arg1 = arg1 |
| 45 | |
| 46 | super().__init__(**kwargs) |
| 47 | |
| 48 | parameters = signature(Foo).parameters |
| 49 | parameter_names = list(parameters) |
| 50 | |
| 51 | self.assertIs(parameters["arg1"].kind, Parameter.POSITIONAL_OR_KEYWORD) |
| 52 | self.assertEqual("arg1", parameter_names[0]) |
| 53 | |
| 54 | self.assertIs(parameters["number1"].kind, Parameter.KEYWORD_ONLY) |
| 55 | self.assertIs(parameters["number2"].kind, Parameter.KEYWORD_ONLY) |
| 56 | self.assertIs(parameters["value"].kind, Parameter.KEYWORD_ONLY) |
| 57 | |
| 58 | self.assertIs(parameters["kwargs"].kind, Parameter.VAR_KEYWORD) |
| 59 | self.assertEqual("kwargs", parameter_names[-1]) |
| 60 | |
| 61 | f = Foo(1, number1=32, value="World") |
| 62 | self.assertEqual(f.arg1, 1) |
| 63 | self.assertEqual(f.number1, 32) |
| 64 | self.assertEqual(f.number2, 0) |
| 65 | self.assertEqual(f.value, "World") |
| 66 | |
| 67 | def test_duplicate_init(self): |
| 68 | @signature_has_traits |