Skip to content

Commit

Permalink
Fix tests for crash recovery
Browse files Browse the repository at this point in the history
  • Loading branch information
Deko committed Mar 10, 2024
1 parent 046c101 commit 8f3442a
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
20 changes: 14 additions & 6 deletions app/main.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import json
import os
import time
from dataclasses import asdict
from json import JSONDecodeError

from loguru import logger
from requests import HTTPError
Expand All @@ -12,17 +14,20 @@
class Main:
is_live: bool = False
current_stream_id: str = ""
streams: dict[str, StreamInformation]
streams: dict[str, StreamInformation] = dict()

def __init__(self):
self.twitch_client = TwitchClient(streamer=os.environ["STREAMER_NAME"])
self.twitch_client.update_access_token()
self.profile_image = self.twitch_client.get_streamer_profile_picture()
self.discord_client = DiscordClient()
with open("streams.json", "r") as file:
saved_streams = json.load(file)
for stream_id, saved_stream in saved_streams:
self.streams[stream_id] = StreamInformation(**saved_stream)
try:
with open("streams.json", "r") as file:
saved_streams = json.load(file)
for stream_id, saved_stream in saved_streams:
self.streams[stream_id] = StreamInformation(**saved_stream)
except (FileNotFoundError, JSONDecodeError):
pass

def update_status(self):
try:
Expand Down Expand Up @@ -101,7 +106,10 @@ def entry() -> None:
while True:
main.update_status()
with open("streams.json", "w") as file:
json.dump(main.streams, file)
serializable_streams = {
k: asdict(v) for k, v in main.streams.items()
}
json.dump(serializable_streams, file)
time.sleep(
DELAY_SECONDS - ((time.time() - start_time) % DELAY_SECONDS)
)
Expand Down
2 changes: 2 additions & 0 deletions app/tests/test_discord_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ def test_require_webhook_url():

def test_send_information_to_discord(mock_loggers):
stream = StreamInformation(
id="0",
user_id="0",
user_name="Test",
user_login="test",
Expand Down Expand Up @@ -56,6 +57,7 @@ def test_send_information_to_discord(mock_loggers):

def test_send_information_to_discord_fails(mock_loggers):
stream = StreamInformation(
id="",
user_id="",
user_name="",
user_login="",
Expand Down
2 changes: 2 additions & 0 deletions app/tests/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,3 +196,5 @@ def delayed_raise():
finalize_notification_request = requests_mocker.request_history[-1]
assert finalize_notification_request.path == "/webhook/messages/123456"
assert finalize_notification_request.json()

os.remove("streams.json")

0 comments on commit 8f3442a

Please sign in to comment.