Spaces:
Sleeping
Sleeping
File size: 2,672 Bytes
4e9b744 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import pytest
from src.services.search_service import SearchService
class TestSearchService:
def setup_method(self):
self.service = SearchService()
def test_detect_job_type(self):
assert self.service._detect_job_type("Cherche Senior Data Scientist NLP") == "DATA_SCIENTIST"
assert self.service._detect_job_type("Offre Data Analyst PowerBI") == "DATA_ANALYST"
assert self.service._detect_job_type("Besoin d'un ML Engineer pour la prod") == "DATA_ENGINEER"
assert self.service._detect_job_type("Développeur Python Backend") == "GENERAL_TECH"
def test_extract_action_verbs_found(self):
text = "J'ai pu optimiser les performances et déployer le modèle en production."
verbs = self.service._extract_action_verbs(text, self.service.VERB_MAPPINGS["DATA_ENGINEER"])
assert "optimiser" in verbs
assert "déployer" in verbs
assert len(verbs) >= 2
def test_extract_action_verbs_analyst(self):
text = "J'ai réalisé des visualisations et présenté des insights."
verbs = self.service._extract_action_verbs(text, self.service.VERB_MAPPINGS["DATA_ANALYST"])
assert "visualiser" in verbs or "présenter" in verbs
def test_extract_action_verbs_none(self):
text = "J'ai fait de la gestion de projet et de la rédaction."
verbs = self.service._extract_action_verbs(text, self.service.VERB_MAPPINGS["DATA_ENGINEER"])
assert len(verbs) == 0
def test_detect_reconversion_true(self):
cv_text = "Après un bootcamp intensif en Data Science, je cherche..."
job_desc = "Cherche Data Scientist junior."
is_reconversion, reason = self.service._detect_reconversion(cv_text, job_desc)
assert is_reconversion is True
assert "bootcamp" in reason
def test_detect_reconversion_false(self):
cv_text = "Ingénieur diplomé avec 5 ans d'expérience."
job_desc = "Cherche Senior Dev."
is_reconversion, reason = self.service._detect_reconversion(cv_text, job_desc)
assert is_reconversion is False
assert "Parcours classique" in reason
def test_analyze_gap_structure(self):
cv_text = "Développeur Python avec expérience en optimiser et monitorer."
job_desc = "Cherche expert Python pour optimiser le backend."
result = self.service.analyze_gap(cv_text, job_desc)
assert "semantic_score" in result
assert "production_mindset_score" in result
assert "is_reconversion" in result
assert "production_verbs_found" in result
assert "optimiser" in result["production_verbs_found"]
|