from __future__ import annotations import os from pathlib import Path from typing import TYPE_CHECKING from fastapi.testclient import TestClient from discord_embed import settings from discord_embed.main import app if TYPE_CHECKING: import httpx client: TestClient = TestClient(app) TEST_FILE: str = "tests/test.mp4" def test_domain_ends_with_slash() -> None: """Test domain ends with a slash.""" assert not settings.serve_domain.endswith("/") def test_main() -> None: """Test main() works.""" response: httpx.Response = client.get("/") assert response.is_success def test_upload_file() -> None: """Test if we can upload files.""" domain = os.environ["SERVE_DOMAIN"].removesuffix("/") # Upload our video file and check if it returns the html_url. with Path.open(Path(TEST_FILE), "rb") as uploaded_file: response: httpx.Response = client.post( url="/uploadfiles/", files={"file": uploaded_file}, ) returned_json = response.json() html_url: str = returned_json["html_url"] assert response.is_success assert html_url == f"{domain}/test.mp4"