| Conditions | 1 |
| Total Lines | 16 |
| Code Lines | 12 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | import typing as t |
||
| 6 | def test_singleton(): |
||
| 7 | class MySingleton(metaclass=Singleton): |
||
| 8 | def __init__(self, data: t.Mapping): |
||
| 9 | self.data = data |
||
| 10 | |||
| 11 | instance_1 = MySingleton({'a': 1}) |
||
| 12 | instance_2 = MySingleton({'b': 2}) |
||
| 13 | |||
| 14 | assert id(instance_1) == id(instance_2) |
||
| 15 | assert instance_1.data['a'] == instance_2.data['a'] == 1 |
||
| 16 | assert 'b' not in instance_1.data |
||
| 17 | assert 'b' not in instance_2.data |
||
| 18 | |||
| 19 | instance_1.data['c'] = 0 |
||
| 20 | |||
| 21 | assert instance_2.data['c'] == 0 |
||
| 22 |