Files
VacatureRadar/tests/unit/test_relevance.py
T

75 lines
2.5 KiB
Python

import pytest
from apps.jobs.models import JobPosting
from apps.jobs.services.relevance import (
assess_it_relevance,
it_relevance_query,
profile_requires_it_focus,
)
def test_title_led_it_relevance_accepts_clear_it_roles():
for title in (
"Modern Workplace Engineer",
"Product owner ICT (100%)",
"Functioneel Analist",
"Senior .Net Developer",
"Senior Mobile Developer",
"Deeltijds docent informatica, networking & security",
):
assessment = assess_it_relevance(title)
assert assessment.relevant, title
assert assessment.signals
def test_title_led_it_relevance_rejects_non_it_and_ambiguous_roles():
for title in (
"Technieker Facilitaire Diensten",
"Spontane sollicitatie - logopedist",
"Doctoraatsbursaal trombo-inflammatie bij hemodialyse",
"Stafmedewerker Onderwijs faculteit Rechten",
"Project Manager",
"Business Developer",
"IT Recruitment Specialist",
):
assessment = assess_it_relevance(title)
assert not assessment.relevant, title
assert assessment.reason
def test_ambiguous_field_role_requires_strong_it_context():
accepted = assess_it_relevance(
"Field Service Engineer",
"Installatie van Microsoft 365, Windows Server en netwerkswitches bij klanten.",
)
rejected = assess_it_relevance(
"Field Service Engineer",
"Onderhoud en herstelling van industriële HVAC- en koelinstallaties.",
)
assert accepted.relevant
assert "vacaturetekst" in accepted.reason
assert not rejected.relevant
assert "Ambigue technische functietitel" in rejected.reason
@pytest.mark.django_db
def test_database_it_query_matches_contextual_assessment(job):
job.original_title = "Field Service Engineer"
job.description_text = "Implementeer Intune, Windows Server en VPN-oplossingen bij klanten."
job.save(update_fields=["original_title", "description_text"])
assert JobPosting.objects.filter(it_relevance_query(), pk=job.pk).exists()
job.description_text = "Onderhoud industriële pompen en productielijnen."
job.save(update_fields=["description_text"])
assert not JobPosting.objects.filter(it_relevance_query(), pk=job.pk).exists()
def test_active_it_profile_requires_deterministic_it_focus(profile):
assert profile_requires_it_focus(profile)
profile.name = "Algemeen profiel"
profile.desired_titles = ["verpleegkundige"]
profile.desired_skills = []
assert not profile_requires_it_focus(profile)