76 lines
2.1 KiB
Python
76 lines
2.1 KiB
Python
from job_research.apec.adapter import ApecSearchFilters
|
|
from job_research.apec.query_derivation import derive_apec_queries, derive_apec_search_filters
|
|
from job_research.models import CandidateProfileOutput
|
|
|
|
|
|
def test_derive_apec_queries_preserves_order_dedupes_and_caps_at_five() -> None:
|
|
profile = CandidateProfileOutput(
|
|
target_roles=[
|
|
"Data Engineer",
|
|
"Analytics Engineer",
|
|
"Data Engineer",
|
|
"BI Engineer",
|
|
"Junior Data Platform Engineer",
|
|
"ML Engineer",
|
|
"Backend Engineer",
|
|
],
|
|
strengths=["Python", "SQL"],
|
|
skills_to_emphasize=["BigQuery", "Terraform"],
|
|
)
|
|
|
|
queries = derive_apec_queries(profile)
|
|
|
|
assert queries == [
|
|
"Data Engineer",
|
|
"Analytics Engineer",
|
|
"BI Engineer",
|
|
"Junior Data Platform Engineer",
|
|
"ML Engineer",
|
|
]
|
|
|
|
|
|
def test_derive_apec_queries_uses_up_to_five_target_roles_when_no_support_terms_exist() -> None:
|
|
profile = CandidateProfileOutput(
|
|
target_roles=[
|
|
"Data Engineer",
|
|
"Analytics Engineer",
|
|
"BI Engineer",
|
|
"Junior Data Platform Engineer",
|
|
"ML Engineer",
|
|
"Backend Engineer",
|
|
]
|
|
)
|
|
|
|
queries = derive_apec_queries(profile)
|
|
|
|
assert queries == [
|
|
"Data Engineer",
|
|
"Analytics Engineer",
|
|
"BI Engineer",
|
|
"Junior Data Platform Engineer",
|
|
"ML Engineer",
|
|
]
|
|
|
|
|
|
def test_derive_apec_queries_uses_support_terms_without_constraints() -> None:
|
|
profile = CandidateProfileOutput(
|
|
target_roles=["Data Engineer"],
|
|
strengths=["Python"],
|
|
skills_to_emphasize=["BigQuery"],
|
|
constraints=["CDI only", "France only"],
|
|
)
|
|
|
|
queries = derive_apec_queries(profile)
|
|
|
|
assert queries == [
|
|
"Data Engineer",
|
|
"Data Engineer Python",
|
|
"Data Engineer BigQuery",
|
|
]
|
|
|
|
|
|
def test_derive_apec_search_filters_from_constraints() -> None:
|
|
profile = CandidateProfileOutput(constraints=["CDI only", "France only"])
|
|
|
|
assert derive_apec_search_filters(profile) == ApecSearchFilters(location="France", contract_type="CDI")
|