chore(interviews): add deps and pytest scaffold for interview subsystem

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Christian Moellmann 2026-05-23 12:00:09 +02:00
parent 815e4758b2
commit f63bc5542a
5 changed files with 40 additions and 0 deletions

View File

@ -32,6 +32,11 @@ dependencies = [
# 工具库 # 工具库
"python-dotenv>=1.0.0", "python-dotenv>=1.0.0",
"pydantic>=2.0.0", "pydantic>=2.0.0",
"PyYAML>=6.0",
"scikit-learn>=1.4",
"scipy>=1.12",
"numpy>=1.26",
"pandas>=2.1",
] ]
[project.optional-dependencies] [project.optional-dependencies]

8
backend/pytest.ini Normal file
View File

@ -0,0 +1,8 @@
[pytest]
testpaths = tests
python_files = test_*.py
python_classes = Test*
python_functions = test_*
addopts = -ra --strict-markers
markers =
integration: marks integration tests (deselect with -m 'not integration')

View File

17
backend/tests/conftest.py Normal file
View File

@ -0,0 +1,17 @@
import os
import sys
import pathlib
import pytest
ROOT = pathlib.Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
os.environ.setdefault("LLM_API_KEY", "test")
os.environ.setdefault("LLM_BASE_URL", "https://example.invalid")
os.environ.setdefault("LLM_MODEL_NAME", "test-model")
os.environ.setdefault("ZEP_API_KEY", "test")
@pytest.fixture
def tmp_uploads(tmp_path, monkeypatch):
monkeypatch.setenv("UPLOADS_DIR", str(tmp_path))
return tmp_path

View File

@ -1248,10 +1248,15 @@ dependencies = [
{ name = "charset-normalizer" }, { name = "charset-normalizer" },
{ name = "flask" }, { name = "flask" },
{ name = "flask-cors" }, { name = "flask-cors" },
{ name = "numpy" },
{ name = "openai" }, { name = "openai" },
{ name = "pandas" },
{ name = "pydantic" }, { name = "pydantic" },
{ name = "pymupdf" }, { name = "pymupdf" },
{ name = "python-dotenv" }, { name = "python-dotenv" },
{ name = "pyyaml" },
{ name = "scikit-learn" },
{ name = "scipy" },
{ name = "zep-cloud" }, { name = "zep-cloud" },
] ]
@ -1276,13 +1281,18 @@ requires-dist = [
{ name = "charset-normalizer", specifier = ">=3.0.0" }, { name = "charset-normalizer", specifier = ">=3.0.0" },
{ name = "flask", specifier = ">=3.0.0" }, { name = "flask", specifier = ">=3.0.0" },
{ name = "flask-cors", specifier = ">=6.0.0" }, { name = "flask-cors", specifier = ">=6.0.0" },
{ name = "numpy", specifier = ">=1.26" },
{ name = "openai", specifier = ">=1.0.0" }, { name = "openai", specifier = ">=1.0.0" },
{ name = "pandas", specifier = ">=2.1" },
{ name = "pipreqs", marker = "extra == 'dev'", specifier = ">=0.5.0" }, { name = "pipreqs", marker = "extra == 'dev'", specifier = ">=0.5.0" },
{ name = "pydantic", specifier = ">=2.0.0" }, { name = "pydantic", specifier = ">=2.0.0" },
{ name = "pymupdf", specifier = ">=1.24.0" }, { name = "pymupdf", specifier = ">=1.24.0" },
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" }, { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
{ name = "python-dotenv", specifier = ">=1.0.0" }, { name = "python-dotenv", specifier = ">=1.0.0" },
{ name = "pyyaml", specifier = ">=6.0" },
{ name = "scikit-learn", specifier = ">=1.4" },
{ name = "scipy", specifier = ">=1.12" },
{ name = "zep-cloud", specifier = "==3.13.0" }, { name = "zep-cloud", specifier = "==3.13.0" },
] ]
provides-extras = ["dev"] provides-extras = ["dev"]