from math import inf from pathlib import Path import pytest from fastapi.testclient import TestClient from pytest_httpserver import HTTPServer LOCAL_SAUCE_PATH = Path(__file__).parent / "test_sauce.jpg" @pytest.fixture(scope="package") def client(): from hibiapi.app import app, application application.RATE_LIMIT_MAX = inf with TestClient(app, base_url="http://testserver/api/") as client: yield client @pytest.mark.xfail(reason="rate limit possible reached") def test_sauce_url(client: TestClient, httpserver: HTTPServer): httpserver.expect_request("/sauce").respond_with_data(LOCAL_SAUCE_PATH.read_bytes()) response = client.get("sauce/", params={"url": httpserver.url_for("/sauce")}) assert response.status_code == 200 data = response.json() assert data["header"]["status"] == 0, data["header"]["message"] @pytest.mark.xfail(reason="rate limit possible reached") def test_sauce_file(client: TestClient): with open(LOCAL_SAUCE_PATH, "rb") as file: response = client.post("sauce/", files={"file": file}) assert response.status_code == 200 data = response.json() assert data["header"]["status"] == 0, data["header"]["message"]