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