import re from datetime import datetime from pathlib import Path import pytest @pytest.mark.slow @pytest.mark.timeout(120) def test_nft_res_lim_03_max_detections_per_frame( warm_engine, http_client, image_dense, auth_headers ): r = http_client.post( "/detect/image", files={"file": ("img.jpg", image_dense, "image/jpeg")}, headers=auth_headers, timeout=120, ) assert r.status_code == 200 body = r.json() assert isinstance(body, list) assert len(body) <= 300 @pytest.mark.slow def test_nft_res_lim_04_log_file_rotation(warm_engine, http_client, image_small, auth_headers): http_client.post( "/detect/image", files={"file": ("img.jpg", image_small, "image/jpeg")}, headers=auth_headers, timeout=60, ) candidates = [ Path(__file__).resolve().parent.parent / "logs", Path("/app/Logs"), ] log_dir = next((p for p in candidates if p.is_dir()), None) if log_dir is None: pytest.skip("Log directory not accessible from e2e-runner container") today = datetime.now().strftime("%Y%m%d") expected = f"log_inference_{today}.txt" names = {p.name for p in log_dir.iterdir() if p.is_file()} if expected not in names: pat = re.compile(r"^log_inference_\d{8}\.txt$") assert any(pat.match(n) for n in names), names