Improved singletonic models.
This commit is contained in:
parent
706f109faf
commit
f558492975
|
@ -244,6 +244,17 @@ def test_Hackers(client_fixture_multi):
|
||||||
assert repr(h) == f"<Hackers {h.kind}=Hackers,{BASE_DN}>"
|
assert repr(h) == f"<Hackers {h.kind}=Hackers,{BASE_DN}>"
|
||||||
|
|
||||||
|
|
||||||
|
def test_Hackers_singleton(client_fixture):
|
||||||
|
other_client = MockClient(BASE_DN)
|
||||||
|
h1 = Hackers(client_fixture)
|
||||||
|
h2 = Hackers(other_client)
|
||||||
|
h3 = Hackers(client_fixture)
|
||||||
|
|
||||||
|
assert client_fixture is not other_client
|
||||||
|
assert h1 is h3
|
||||||
|
assert h2 is not h1
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_Entry_get_children(client_fixture_multi):
|
async def test_Entry_get_children(client_fixture_multi):
|
||||||
h = Hackers(client_fixture_multi.users)
|
h = Hackers(client_fixture_multi.users)
|
||||||
|
@ -302,6 +313,17 @@ def test_Robots(client_fixture_multi):
|
||||||
assert repr(r) == f"<Services {r.kind}=Services,{BASE_DN}>"
|
assert repr(r) == f"<Services {r.kind}=Services,{BASE_DN}>"
|
||||||
|
|
||||||
|
|
||||||
|
def test_Robots_singleton(client_fixture):
|
||||||
|
other_client = MockClient(BASE_DN)
|
||||||
|
r1 = Robots(client_fixture)
|
||||||
|
r2 = Robots(other_client)
|
||||||
|
r3 = Robots(client_fixture)
|
||||||
|
|
||||||
|
assert client_fixture is not other_client
|
||||||
|
assert r1 is r3
|
||||||
|
assert r2 is not r1
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_Robots_anext(client_fixture_multi):
|
async def test_Robots_anext(client_fixture_multi):
|
||||||
r = Robots(client_fixture_multi.services)
|
r = Robots(client_fixture_multi.services)
|
||||||
|
@ -327,6 +349,17 @@ def test_Congregations(client_fixture_multi):
|
||||||
assert repr(g) == f"<Groups {g.kind}=Groups,{BASE_DN}>"
|
assert repr(g) == f"<Groups {g.kind}=Groups,{BASE_DN}>"
|
||||||
|
|
||||||
|
|
||||||
|
def test_Congregations_singleton(client_fixture):
|
||||||
|
other_client = MockClient(BASE_DN)
|
||||||
|
g1 = Congregations(client_fixture)
|
||||||
|
g2 = Congregations(other_client)
|
||||||
|
g3 = Congregations(client_fixture)
|
||||||
|
|
||||||
|
assert client_fixture is not other_client
|
||||||
|
assert g1 is g3
|
||||||
|
assert g2 is not g1
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_Congregations_anext(client_fixture_multi):
|
async def test_Congregations_anext(client_fixture_multi):
|
||||||
c = Congregations(client_fixture_multi.groups)
|
c = Congregations(client_fixture_multi.groups)
|
||||||
|
|
|
@ -123,12 +123,13 @@ class Hackers(Entry):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
kind = "ou"
|
kind = "ou"
|
||||||
_instance = None
|
_instances: T.Dict[str, Entry] = dict()
|
||||||
|
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, client, *args, **kwargs):
|
||||||
if cls._instance is None:
|
_name = f"{id(client)}"
|
||||||
cls._instance = object.__new__(cls)
|
if _name not in cls._instances:
|
||||||
return cls._instance
|
cls._instances[_name] = object.__new__(cls)
|
||||||
|
return cls._instances[_name]
|
||||||
|
|
||||||
def __init__(self, client, *args, **kwargs):
|
def __init__(self, client, *args, **kwargs):
|
||||||
super().__init__(client)
|
super().__init__(client)
|
||||||
|
@ -160,12 +161,13 @@ class Robots(Entry):
|
||||||
|
|
||||||
kind = "ou"
|
kind = "ou"
|
||||||
_name = "Services"
|
_name = "Services"
|
||||||
_instance = None
|
_instances: T.Dict[str, Entry] = dict()
|
||||||
|
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, client, *args, **kwargs):
|
||||||
if cls._instance is None:
|
_name = f"{id(client)}"
|
||||||
cls._instance = object.__new__(cls)
|
if _name not in cls._instances:
|
||||||
return cls._instance
|
cls._instances[_name] = object.__new__(cls)
|
||||||
|
return cls._instances[_name]
|
||||||
|
|
||||||
def __init__(self, client, *args, **kwargs):
|
def __init__(self, client, *args, **kwargs):
|
||||||
super().__init__(client)
|
super().__init__(client)
|
||||||
|
@ -186,12 +188,13 @@ class Congregations(Entry):
|
||||||
|
|
||||||
kind = "ou"
|
kind = "ou"
|
||||||
_name = "Groups"
|
_name = "Groups"
|
||||||
_instance = None
|
_instances: T.Dict[str, Entry] = dict()
|
||||||
|
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, client, *args, **kwargs):
|
||||||
if cls._instance is None:
|
_name = f"{id(client)}"
|
||||||
cls._instance = object.__new__(cls)
|
if _name not in cls._instances:
|
||||||
return cls._instance
|
cls._instances[_name] = object.__new__(cls)
|
||||||
|
return cls._instances[_name]
|
||||||
|
|
||||||
def __init__(self, client, *args, **kwargs):
|
def __init__(self, client, *args, **kwargs):
|
||||||
super().__init__(client)
|
super().__init__(client)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user