Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions apps/backend/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
fastapi==0.111.0
fastapi==0.138.1
starlette>=1.3.1
uvicorn[standard]==0.30.1
pydantic==2.7.1
pydantic>=2.9.0
pydantic-settings==2.3.0
redis==5.0.4
httpx==0.27.0
sse-starlette==2.1.0
prometheus-client==0.20.0
python-multipart==0.0.9 # file uploads for /snapshot
python-multipart>=0.0.30 # file uploads for /snapshot
fakeredis==2.21.3 # tests
pytest==8.1.1
pytest-asyncio==0.23.6
Expand Down
2,834 changes: 0 additions & 2,834 deletions poetry.lock

This file was deleted.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ dependencies = [
dev = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"black>=23.0.0",
"black>=26.3.1",
"ruff>=0.1.0",
]

Expand Down
3 changes: 1 addition & 2 deletions services/detection/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@ supervision==0.20.0
pydantic==2.6.4
pytest==8.1.1
ruff==0.4.1
black==24.3.0
EOF
black>=26.3.1
1 change: 1 addition & 0 deletions services/memory/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ prometheus_client>=0.14.0
httpx==0.27.0 # Ollama VLM calls
google-generativeai==0.7.2 # Gemini (optional)
pytest==8.1.1
starlette>=1.3.1

2 changes: 1 addition & 1 deletion tests/test_inspect_tracks.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def test_json_payload_is_machine_readable(fake_redis):

encoded = json.dumps(payload)
decoded = json.loads(encoded)
assert decoded["redis_url"] == settings.redis_url
assert decoded["redis_url"] == "redis://localhost:6379"
assert "secret" not in encoded
assert decoded["tracks"][0]["track_id"] == 3
assert decoded["tracks"][0]["events"][0]["event"] == "BORN"
Expand Down
2 changes: 2 additions & 0 deletions tests/test_memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,11 @@ def guarded_import(name, *args, **kwargs):
return real_import(name, *args, **kwargs)

monkeypatch.setattr(builtins, "__import__", guarded_import)
monkeypatch.delitem(sys.modules, "cv2", raising=False)
monkeypatch.delitem(sys.modules, "services.tracking", raising=False)
monkeypatch.delitem(sys.modules, "services.tracking.tracker", raising=False)
monkeypatch.delitem(sys.modules, "services.memory.memory", raising=False)
monkeypatch.delitem(sys.modules, "cv2", raising=False)

imported = importlib.import_module("services.memory.memory")
assert hasattr(imported, "MemoryStore")
Expand Down
20 changes: 20 additions & 0 deletions tests/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,26 @@
from libs.config.settings import Settings


@pytest.fixture(autouse=True)
def clean_settings_env(monkeypatch):
"""Ensure that the local .env file and existing environment variables
do not pollute the Settings unit tests.
"""
# Prevent loading of .env file
original_init = Settings.__init__
def patched_init(self, *args, **kwargs):
kwargs.setdefault("_env_file", None)
original_init(self, *args, **kwargs)
monkeypatch.setattr(Settings, "__init__", patched_init)

# Clear environment variables corresponding to Settings fields
for field in Settings.model_fields:
monkeypatch.delenv(field.upper(), raising=False)





# ── Default values ────────────────────────────────────────────────────────────

class TestDefaults:
Expand Down
Loading