Add test pipeline step and a basic test

This commit is contained in:
Deko
2023-03-04 00:15:19 +01:00
parent c8df3b31da
commit 33fd4fa682
12 changed files with 238 additions and 11 deletions

View File

@@ -2,7 +2,7 @@ import os
import requests
from loguru import logger
from twitch_client import StreamInformation
from app.twitch_client import StreamInformation
class DiscordClient:

View File

@@ -1,10 +1,10 @@
import os
import time
from discord_client import DiscordClient
from app.discord_client import DiscordClient
from app.twitch_client import StreamInformation, TwitchClient
from loguru import logger
from requests import HTTPError
from twitch_client import StreamInformation, TwitchClient
class Main:

0
app/tests/__init__.py Normal file
View File

16
app/tests/conftest.py Normal file
View File

@@ -0,0 +1,16 @@
from collections import namedtuple
from unittest import mock
import pytest
@pytest.fixture
def mock_loggers():
with (
mock.patch("loguru.logger.info") as info_logger,
mock.patch("loguru.logger.error") as error_logger,
):
mocked_loggers = namedtuple(
"mocked_loggers", ["info_logger", "error_logger"]
)
yield mocked_loggers(info_logger, error_logger)

View File

@@ -0,0 +1,44 @@
import os
from unittest import mock
import pytest
import requests_mock
from requests import HTTPError
from app.discord_client import DiscordClient
from app.twitch_client import StreamInformation
def test_require_webhook_url():
with pytest.raises(KeyError):
DiscordClient()
def test_send_information_to_discord_fails(mock_loggers):
stream = StreamInformation(
user_id="",
user_name="",
user_login="",
game_name="",
started_at="",
title="",
viewer_count=0,
_thumbnail_url=""
)
with (
mock.patch.dict(os.environ, {"DISCORD_WEBHOOK_URL": "https://test"}),
requests_mock.Mocker() as requests_mocker,
):
requests_mocker.post(url="https://test", status_code=400)
discord_client = DiscordClient()
with pytest.raises(HTTPError):
discord_client.send_information_to_discord(
stream=stream, profile_image=""
)
assert len(mock_loggers.info_logger.call_args_list) == 1
assert mock_loggers.info_logger.call_args.args[0] == (
"Sending a message with an embed to the webhook..."
)