Files
resume-agent/backend/tests/test_target_position_api.py

56 lines
1.8 KiB
Python

"""Tests for the unified target-position write path."""
from app.optimization_models import TargetPositionRequest
def test_target_position_request_validation():
request = TargetPositionRequest(target_position=" 数据分析师 ")
assert request.target_position == " 数据分析师 "
def test_set_target_position_updates_profile():
from app.optimization_flow import OptimizationFlowMixin
class FakeDatabase:
def __init__(self):
self.session = {
"id": "s1",
"stage": "RESUME_ENRICHING",
"revision": 3,
"profile": {"job_type": "校招"},
"draft_id": None,
"resume_id": "r1",
}
def transaction(self, immediate=False):
class Context:
def __enter__(self_inner):
return object()
def __exit__(self_inner, *args):
return False
return Context()
def update_session(self, connection, session_id, *, stage, profile, **kwargs):
self.session["profile"] = profile
return self.session
class Service(OptimizationFlowMixin):
pass
service = Service()
service.database = FakeDatabase()
service._session_or_404 = lambda connection, session_id: service.database.session
result = service.set_target_position("s1", " 数据分析师 ")
assert result == {
"target_position": "数据分析师",
"target_position_confirmed": True,
}
assert service.database.session["profile"]["target_position"] == "数据分析师"
assert service.database.session["profile"]["target_position_confirmed"] is True
assert service.database.session["profile"]["job_type"] == "校招"