Total Complexity | 1 |
Total Lines | 22 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import typing as t |
||
2 | |||
3 | from software_patterns import Singleton |
||
4 | |||
5 | |||
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 |