diff --git a/.coverage b/.coverage new file mode 100644 index 00000000..95fd2a25 Binary files /dev/null and b/.coverage differ diff --git a/coverage.xml b/coverage.xml new file mode 100644 index 00000000..61e28dc3 --- /dev/null +++ b/coverage.xml @@ -0,0 +1,1135 @@ + + + + + + src/libkernelbot + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/libkernelbot/background_submission_manager.py b/src/kernelbot/api/background_submission_manager.py similarity index 100% rename from src/libkernelbot/background_submission_manager.py rename to src/kernelbot/api/background_submission_manager.py diff --git a/src/kernelbot/api/main.py b/src/kernelbot/api/main.py index d9d0ae9b..4039fb51 100644 --- a/src/kernelbot/api/main.py +++ b/src/kernelbot/api/main.py @@ -10,8 +10,8 @@ from fastapi import Depends, FastAPI, Header, HTTPException, Request, UploadFile from fastapi.responses import JSONResponse, StreamingResponse +from kernelbot.api.background_submission_manager import BackgroundSubmissionManager from libkernelbot.backend import KernelBackend -from libkernelbot.background_submission_manager import BackgroundSubmissionManager from libkernelbot.consts import SubmissionMode from libkernelbot.db_types import IdentityType from libkernelbot.leaderboard_db import LeaderboardDB, LeaderboardRankedEntry diff --git a/src/kernelbot/main.py b/src/kernelbot/main.py index e0411096..32f63a8b 100644 --- a/src/kernelbot/main.py +++ b/src/kernelbot/main.py @@ -13,9 +13,9 @@ from discord.ext import commands from env import env, init_environment +from kernelbot.api.background_submission_manager import BackgroundSubmissionManager from libkernelbot import consts from libkernelbot.backend import KernelBackend -from libkernelbot.background_submission_manager import BackgroundSubmissionManager from libkernelbot.launchers import GitHubLauncher, ModalLauncher from libkernelbot.utils import setup_logging diff --git a/src/libkernelbot/api_utils.py b/src/libkernelbot/api_utils.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/conftest.py b/tests/conftest.py index f296bbc9..2ddee3af 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,33 +1,23 @@ -import os import subprocess import time from pathlib import Path import pytest -REQUIRED = { - "DISCORD_TOKEN": "dummy", - "GITHUB_TOKEN": "dummy", - "GITHUB_REPO": "dummy", -} - -for k, v in REQUIRED.items(): - os.environ.setdefault(k, v) - -@pytest.fixture(scope="session", autouse=True) -def _restore_env(): - old = {k: os.environ.get(k) for k in REQUIRED} - try: - yield - finally: - for k, v in old.items(): - if v is None: - os.environ.pop(k, None) - else: - os.environ[k] = v - DATABASE_URL = "postgresql://postgres:postgres@localhost:5433/clusterdev" +@pytest.fixture +def with_dummy_env(monkeypatch): + REQUIRED = { + "DISCORD_TOKEN": "dummy1", + "GITHUB_TOKEN": "dummy1", + "GITHUB_REPO": "dummy1", + } + + for k, v in REQUIRED.items(): + monkeypatch.setenv(k, v) + yield + @pytest.fixture(scope="module") def docker_compose(project_root: Path): diff --git a/tests/test_background_submission_manager.py b/tests/test_background_submission_manager.py index ac038972..64e58f67 100644 --- a/tests/test_background_submission_manager.py +++ b/tests/test_background_submission_manager.py @@ -1,13 +1,15 @@ import asyncio import datetime from unittest import mock - +import os import pytest -from libkernelbot.background_submission_manager import BackgroundSubmissionManager +from kernelbot.api.background_submission_manager import BackgroundSubmissionManager from libkernelbot.consts import SubmissionMode from libkernelbot.submission import ProcessedSubmissionRequest +# only replace env vars in this test file +pytestmark = pytest.mark.usefixtures("with_dummy_env") @pytest.fixture def mock_backend(): diff --git a/tests/test_leaderboard_db.py b/tests/test_leaderboard_db.py index 753c88f0..8340bbbd 100644 --- a/tests/test_leaderboard_db.py +++ b/tests/test_leaderboard_db.py @@ -9,6 +9,8 @@ from libkernelbot.db_types import IdentityType from libkernelbot.utils import KernelBotError +# only replace env vars in this test file +pytestmark = pytest.mark.usefixtures("with_dummy_env") def _submit_leaderboard(database, task_directory): """ diff --git a/tests/test_validate_user_header.py b/tests/test_validate_user_header.py index 54ab484d..7d0a1a34 100644 --- a/tests/test_validate_user_header.py +++ b/tests/test_validate_user_header.py @@ -6,6 +6,7 @@ from kernelbot.api.main import validate_user_header from libkernelbot.db_types import IdentityType +pytestmark = pytest.mark.usefixtures("with_dummy_env") class DummyDBCtx: def __init__(self, to_return=None, to_raise: Optional[Exception] = None):