generated from kgod/ai-review-template
自内部仓库剥离深度优化与 RAG 知识库后的交付版本: - Builder 对话式简历生成(FSM + 意图路由 LLM 兜底增强) - 条目级轻度优化:事实覆盖门禁 + STAR/bullet 修复链,功能/简介/成果与技术栈同级保护 - 简历导入:DOCX/PDF 解析、结构归一、手机号脱敏 - PostgreSQL 运行时 + Alembic 迁移链 Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
"""Tests for membership-tier pipeline parameterization."""
|
|
|
|
from app.optimization_tiers import tier_config_for_session
|
|
|
|
|
|
def test_default_session_uses_free_tier(monkeypatch) -> None:
|
|
monkeypatch.delenv("RESUME_AGENT_DEFAULT_TIER", raising=False)
|
|
config = tier_config_for_session({"profile": {}})
|
|
|
|
assert config.tier == "free"
|
|
assert config.deep_allowed is False
|
|
assert config.include_gap_report is True
|
|
assert config.max_questions == 0
|
|
|
|
|
|
def test_vip_tier_enables_deep_interview_with_complete_preset() -> None:
|
|
config = tier_config_for_session({"profile": {"entitlement_tier": "VIP"}})
|
|
|
|
assert config.tier == "vip"
|
|
assert config.deep_allowed is True
|
|
assert config.max_questions == 6
|
|
assert config.min_questions == 2
|
|
assert config.gap_threshold == 8.0
|
|
|
|
|
|
def test_unknown_tier_falls_back_to_free() -> None:
|
|
config = tier_config_for_session({"profile": {"entitlement_tier": "enterprise_x"}})
|
|
|
|
assert config.tier == "free"
|
|
assert config.deep_allowed is False
|
|
|
|
|
|
def test_unentitled_session_uses_local_vip_default(monkeypatch) -> None:
|
|
monkeypatch.setenv("RESUME_AGENT_DEFAULT_TIER", "vip")
|
|
|
|
config = tier_config_for_session({"profile": {}})
|
|
|
|
assert config.tier == "vip"
|
|
assert config.deep_allowed is True
|
|
assert config.gap_threshold == 8.0
|
|
|
|
|
|
def test_explicit_free_entitlement_overrides_local_vip_default(monkeypatch) -> None:
|
|
monkeypatch.setenv("RESUME_AGENT_DEFAULT_TIER", "vip")
|
|
|
|
config = tier_config_for_session({"profile": {"entitlement_tier": "free"}})
|
|
|
|
assert config.tier == "free"
|
|
assert config.deep_allowed is False
|