Skip to content

Commit a14278e

Browse files
authored
Rename WebSocketsAccessGuardian -> SessionExpirationChecker (#21)
1 parent fd8dd01 commit a14278e

File tree

5 files changed

+27
-27
lines changed

5 files changed

+27
-27
lines changed

src/entrypoint.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from app import conf
88
from consumer import Consumer
9-
from handlers import WebSocketsAccessGuardian, WebSocketsHandler
9+
from handlers import SessionExpirationChecker, WebSocketsHandler
1010
from storage.subscription_storage import SubscriptionStorage
1111

1212
logging.basicConfig(level=logging.INFO)
@@ -22,7 +22,7 @@ def create_stop_signal() -> asyncio.Future[None]:
2222
async def app_runner(
2323
settings: conf.Settings,
2424
websockets_handler: WebSocketsHandler,
25-
access_guardian: WebSocketsAccessGuardian,
25+
session_expiration_checker: SessionExpirationChecker,
2626
consumer: Consumer,
2727
stop_signal: asyncio.Future,
2828
) -> None:
@@ -34,7 +34,7 @@ async def app_runner(
3434
),
3535
asyncio.TaskGroup() as task_group,
3636
):
37-
task_group.create_task(access_guardian.run(stop_signal))
37+
task_group.create_task(session_expiration_checker.run(stop_signal))
3838
task_group.create_task(consumer.consume(stop_signal))
3939

4040

@@ -44,13 +44,13 @@ async def main() -> None:
4444

4545
storage = SubscriptionStorage()
4646
websockets_handler = WebSocketsHandler(storage=storage)
47-
access_guardian = WebSocketsAccessGuardian(storage=storage, check_interval=60.0)
47+
session_expiration_checker = SessionExpirationChecker(storage=storage, check_interval=60.0)
4848
consumer = Consumer(storage=storage)
4949

5050
await app_runner(
5151
settings=settings,
5252
websockets_handler=websockets_handler,
53-
access_guardian=access_guardian,
53+
session_expiration_checker=session_expiration_checker,
5454
consumer=consumer,
5555
stop_signal=stop_signal,
5656
)

src/handlers/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from handlers.websockets_access_guardian import WebSocketsAccessGuardian
1+
from handlers.session_expiration_checker import SessionExpirationChecker
22
from handlers.websockets_handler import WebSocketsHandler
33

44
__all__ = [
5-
"WebSocketsAccessGuardian",
5+
"SessionExpirationChecker",
66
"WebSocketsHandler",
77
]

src/handlers/websockets_access_guardian.py renamed to src/handlers/session_expiration_checker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414
@dataclass
15-
class WebSocketsAccessGuardian:
15+
class SessionExpirationChecker:
1616
storage: SubscriptionStorage
1717
check_interval: float = 60.0 # in seconds
1818

src/handlers/tests/tests_websockets_access_guardian.py renamed to src/handlers/tests/tests_session_expiration_checker.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from datetime import datetime
55

66
from app.types import DecodedValidToken
7-
from handlers.websockets_access_guardian import WebSocketsAccessGuardian
7+
from handlers.session_expiration_checker import SessionExpirationChecker
88
from storage.storage_updaters import StorageUserSubscriber, StorageWebSocketRegister
99

1010
pytestmark = [
@@ -18,19 +18,19 @@ def mock_broadcast(mocker):
1818

1919

2020
@pytest.fixture
21-
def get_guardian_enough_time_to_do_its_job():
21+
def give_expiration_checker_enough_time():
2222
return lambda: asyncio.sleep(0.4)
2323

2424

2525
@pytest.fixture
26-
def guardian(storage):
27-
return WebSocketsAccessGuardian(storage=storage, check_interval=0.1)
26+
def expiration_checker(storage):
27+
return SessionExpirationChecker(storage=storage, check_interval=0.1)
2828

2929

3030
@pytest.fixture(autouse=True)
31-
async def guardian_as_task(guardian):
31+
async def expiration_checker_as_task(expiration_checker):
3232
stop_signal = asyncio.get_event_loop().create_future()
33-
runner_task = asyncio.create_task(guardian.run(stop_signal))
33+
runner_task = asyncio.create_task(expiration_checker.run(stop_signal))
3434

3535
yield runner_task
3636

@@ -49,24 +49,24 @@ def ws_subscribed(ws, storage, event):
4949
return ws
5050

5151

52-
def test_guardian_monitor_and_manage_access_remove_expired_websockets(guardian, storage, ws_subscribed):
53-
guardian.monitor_and_manage_access()
52+
def test_expiration_checker_monitor_and_manage_access_remove_expired_websockets(expiration_checker, storage, ws_subscribed):
53+
expiration_checker.monitor_and_manage_access()
5454

5555
registered_websockets = storage.get_registered_websockets()
5656
assert registered_websockets == []
5757

5858

59-
async def test_remove_expired_websockets_from_storage(get_guardian_enough_time_to_do_its_job, storage, mock_broadcast, ws_subscribed, mocker):
60-
await get_guardian_enough_time_to_do_its_job()
59+
async def test_remove_expired_websockets_from_storage(give_expiration_checker_enough_time, storage, mock_broadcast, ws_subscribed, mocker):
60+
await give_expiration_checker_enough_time()
6161

6262
registered_websockets = storage.get_registered_websockets()
6363
assert registered_websockets == []
6464
assert ws_subscribed.closed is False, "Do not close connection when token expired, just remove from storage"
6565
mock_broadcast.assert_called_once_with(websockets=[ws_subscribed], message=mocker.ANY)
6666

6767

68-
async def test_broadcasted_message(get_guardian_enough_time_to_do_its_job, mock_broadcast):
69-
await get_guardian_enough_time_to_do_its_job()
68+
async def test_expiration_checker_broadcasted_message(give_expiration_checker_enough_time, mock_broadcast):
69+
await give_expiration_checker_enough_time()
7070

7171
broadcasted_message_as_json = json.loads(mock_broadcast.call_args.kwargs["message"])
7272
assert len(broadcasted_message_as_json) == 2
@@ -75,8 +75,8 @@ async def test_broadcasted_message(get_guardian_enough_time_to_do_its_job, mock_
7575

7676

7777
@pytest.mark.freeze_time("2023-01-01 12:22:55Z", tick=True) # 5 seconds before expiration
78-
async def test_do_not_remove_not_expired_connections(get_guardian_enough_time_to_do_its_job, storage, ws_subscribed, mock_broadcast):
79-
await get_guardian_enough_time_to_do_its_job()
78+
async def test_expiration_checker_not_remove_active_connections(give_expiration_checker_enough_time, storage, ws_subscribed, mock_broadcast):
79+
await give_expiration_checker_enough_time()
8080

8181
registered_websockets = storage.get_registered_websockets()
8282
assert registered_websockets == [ws_subscribed]

src/tests/functional/conftest.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from consumer import Consumer
88
from entrypoint import app_runner
9-
from handlers import WebSocketsAccessGuardian, WebSocketsHandler
9+
from handlers import SessionExpirationChecker, WebSocketsHandler
1010

1111

1212
@pytest.fixture(autouse=True)
@@ -29,8 +29,8 @@ async def stop_signal():
2929

3030

3131
@pytest.fixture
32-
def access_guardian(storage):
33-
return WebSocketsAccessGuardian(storage=storage, check_interval=0.5)
32+
def session_expiration_checker(storage):
33+
return SessionExpirationChecker(storage=storage, check_interval=0.5)
3434

3535

3636
@pytest.fixture
@@ -39,12 +39,12 @@ def consumer(storage):
3939

4040

4141
@pytest.fixture(autouse=True)
42-
async def serve_app_runner(settings, websockets_handler, access_guardian, consumer, stop_signal):
42+
async def serve_app_runner(settings, websockets_handler, session_expiration_checker, consumer, stop_signal):
4343
serve_task = asyncio.create_task(
4444
app_runner(
4545
settings=settings,
4646
websockets_handler=websockets_handler,
47-
access_guardian=access_guardian,
47+
session_expiration_checker=session_expiration_checker,
4848
consumer=consumer,
4949
stop_signal=stop_signal,
5050
),

0 commit comments

Comments
 (0)