[ka6] fix connecteur cambria: ajout de Fermont au dictionnaire _QC_CITIES (normalize.py) — l'offre QC courante du tenant workday cambria.wd1 (« Mechanic » R-103013, site minier Sitec à Fermont, Côte-Nord, publiée le 2026-04-10, description en français) était INVISIBLE depuis la création du connecteur (Vague D 2026-08-25) : Workday l'affiche sous le libellé « Sitec Fermont » sans province ni code postal, et Fermont manquait au dictionnaire partagé _QC_CITIES, si bien que is_quebec_location la rejetait au filtre client ET au repli de facette serveur (_find_qc_facet — ce tenant n'expose aucune facette province, seulement pays Canada=1 + lieux plats). Le connecteur ne voyait donc que l'offre montréalaise historique (Market Sales Representative R-103079), dépubliée par l'employeur le 2026-09-02 (miss_count=2, retrait normal) → found=0 depuis, d'où le statut stale (la supervision date le succès au dernier sync found>0). L'unique vrai échec (2026-09-12 03:08, « Workday non-JSON HTTP 200 text/html ») est la fenêtre de maintenance hebdomadaire Workday du vendredi nuit, transitoire. Correctif minimal dans la couche partagée (même famille que f4038e4) : « fermont »: « Fermont » — mot à graphie unique, aucun homonyme hors QC (≠ Fremont), garde-fous _NON_QC_CITIES/_NON_QC_REGION_RE intacts ; test ajouté sur le libellé exact « Sitec Fermont ». Sync isolé rejoué : found=1, added=1 en 2,9 s — R-103013 en base, ville Fermont, région Côte-Nord, statut ok (médiane historique 0–1). 102 tests pytest verts. pm2 restart job-ka-sync OK, site 200.
2 changed files +7 −2
modified
jobka/normalize.py
+2 −1
@@ -6,7 +6,7 @@ | ||
| 6 | 6 | # Rôle : Normalisation commune des offres (salaires, dates, mode/type |
| 7 | 7 | # d'emploi, lieu, catégorie, exigences, séniorité) — jamais de |
| 8 | 8 | # valeur inventée |
| 9 | −# Créé : 2026-08-17 Modifié : 2026-08-26 | |
| 9 | +# Créé : 2026-08-17 Modifié : 2026-09-12 | |
| 10 | 10 | # ============================================================================= |
| 11 | 11 | """Couche de normalisation commune appelée par JobPosting.finalize(). |
| 12 | 12 | |
@@ -412,6 +412,7 @@ _QC_CITIES = { | ||
| 412 | 412 | "joliette": "Joliette", "victoriaville": "Victoriaville", |
| 413 | 413 | "rimouski": "Rimouski", "rouyn-noranda": "Rouyn-Noranda", |
| 414 | 414 | "baie-comeau": "Baie-Comeau", "sept-iles": "Sept-Îles", |
| 415 | + "fermont": "Fermont", | |
| 415 | 416 | "val-d'or": "Val-d'Or", "val d'or": "Val-d'Or", "alma": "Alma", |
| 416 | 417 | "sainte-foy": "Québec", "anjou": "Montréal", "dorval": "Dorval", |
| 417 | 418 | "boisbriand": "Boisbriand", "blainville": "Blainville", |
modified
tests/test_normalize.py
+5 −1
@@ -5,7 +5,7 @@ | ||
| 5 | 5 | # Fichier : tests/test_normalize.py |
| 6 | 6 | # Rôle : Tests unitaires de la couche de normalisation (salaires, dates, |
| 7 | 7 | # mode/type d'emploi, lieux, catégories) |
| 8 | −# Créé : 2026-08-17 Modifié : 2026-08-17 | |
| 8 | +# Créé : 2026-08-17 Modifié : 2026-09-12 | |
| 9 | 9 | # ============================================================================= |
| 10 | 10 | import datetime as dt |
| 11 | 11 | |
@@ -155,6 +155,10 @@ def test_is_quebec_location(): | ||
| 155 | 155 | assert is_quebec_location("Montréal, QC") |
| 156 | 156 | assert is_quebec_location("Saint-Laurent, Quebec, Canada") |
| 157 | 157 | assert is_quebec_location("Sherbrooke") |
| 158 | + # « Sitec Fermont » : site minier de Cambria à Fermont (Côte-Nord) — | |
| 159 | + # libellé Workday sans province, la ville seule doit suffire (bug cambria | |
| 160 | + # 2026-09-12 : Fermont absent de _QC_CITIES rendait l'offre invisible) | |
| 161 | + assert is_quebec_location("Sitec Fermont") | |
| 158 | 162 | assert not is_quebec_location("Toronto, ON") |
| 159 | 163 | assert not is_quebec_location("Richmond, BC") |
| 160 | 164 | assert not is_quebec_location("Paris, IDF, France") |
| 161 | 165 | |