- Add shared config.py with API URLs, regexes, timeouts, pagination - Add GiteaClient and VikunjaClient in api_clients.py with pooled sessions - Add APIError exception for unified HTTP error handling - Refactor all scripts to use shared modules and http.HTTPStatus - Rewrite unit tests to mock clients and use HTTPStatus constants - Add tests for api_clients and config modules - Achieve 100% test coverage
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
"""Unit tests for config module constants."""
|
|
|
|
from gitea_runner_manager.config import (
|
|
BRANCH_PROTECTION_CONFIG,
|
|
CONVENTIONAL_RE,
|
|
DEFAULT_PER_PAGE,
|
|
DEFAULT_TIMEOUT,
|
|
GITEA_API_URL,
|
|
LABEL_CONFIG,
|
|
REPO_NAME,
|
|
REPO_OWNER,
|
|
TASK_ID_RE,
|
|
VIKUNJA_API_URL,
|
|
VIKUNJA_PROJECT_ID,
|
|
)
|
|
|
|
|
|
class TestConfigConstants:
|
|
def test_api_urls(self) -> None:
|
|
assert GITEA_API_URL == "https://git.oblachno.oblachno.fyi/api/v1"
|
|
assert VIKUNJA_API_URL == "https://work.oblachno.oblachno.fyi/api/v1"
|
|
|
|
def test_project_ids(self) -> None:
|
|
assert VIKUNJA_PROJECT_ID == 6
|
|
|
|
def test_timeouts(self) -> None:
|
|
assert DEFAULT_TIMEOUT == 30
|
|
assert DEFAULT_PER_PAGE == 50
|
|
|
|
def test_owner_and_repo(self) -> None:
|
|
assert REPO_OWNER == "oblachno-oss"
|
|
assert REPO_NAME == "grm"
|
|
|
|
def test_task_id_re(self) -> None:
|
|
assert TASK_ID_RE.search("GRM-1")
|
|
assert TASK_ID_RE.search("GRM-123")
|
|
assert not TASK_ID_RE.search("GRM-")
|
|
assert not TASK_ID_RE.search("other text")
|
|
|
|
def test_conventional_re(self) -> None:
|
|
assert CONVENTIONAL_RE.match("feat: add feature")
|
|
assert CONVENTIONAL_RE.match("fix(scope): bug fix")
|
|
assert not CONVENTIONAL_RE.match("random message")
|
|
assert not CONVENTIONAL_RE.match("feat:")
|
|
|
|
def test_branch_protection_config(self) -> None:
|
|
assert BRANCH_PROTECTION_CONFIG["branch_name"] == "master"
|
|
assert BRANCH_PROTECTION_CONFIG["enable_push"] is False
|
|
assert BRANCH_PROTECTION_CONFIG["required_approvals"] == 1
|
|
assert BRANCH_PROTECTION_CONFIG["status_check_contexts"] == ["lint", "unit-tests", "molecule-tests"]
|
|
|
|
def test_label_config(self) -> None:
|
|
assert LABEL_CONFIG["name"] == "ready-to-merge"
|
|
assert LABEL_CONFIG["color"] == "2ecc71"
|