| """ |
| Fallback tests for CV extraction when NER or skills extraction is unavailable. |
| """ |
| from app.services.cv_extractor import CVExtractionService, _FallbackSkillExtractor |
|
|
|
|
| def test_extract_from_text_without_ner(): |
| service = CVExtractionService() |
| service.ner_available = False |
|
|
| text = "John Doe\nEmail: john@example.com\nSkills: Python, FastAPI, PostgreSQL, Docker" |
| result = service.extract_from_text(text) |
|
|
| assert result.quality_score == 0 |
| assert result.structured == {} |
|
|
| if type(service.skill_extractor).__name__ == "_FallbackSkillExtractor": |
| assert result.skills == [] |
| else: |
| assert any(skill.get("name") == "Python" for skill in result.skills) |
|
|
|
|
| def test_extract_from_text_skill_extractor_fallback(): |
| service = CVExtractionService() |
| service.ner_available = False |
| service.skill_extractor = _FallbackSkillExtractor() |
|
|
| result = service.extract_from_text("Just some text without skills") |
| assert result.skills == [] |
|
|
|
|
| if __name__ == "__main__": |
| test_extract_from_text_without_ner() |
| test_extract_from_text_skill_extractor_fallback() |
| print("ner fallback tests: OK") |
|
|