SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%

History of tests/test_normalize.py · clear filter

  1. Expansion provinciale P1 : 26 nouveaux connecteurs + 8 extensions (+1 358 annonces)
    Lot 0 extensions : girescom +Beauce, msi +Thetford, utile +Trois-Rivières/
    Rimouski, cogir/realstar/centurion/plan_a +Gatineau/Sherbrooke.
    Lot 1 plateformes maîtrisées : thrace (Livya, 181), lr_gestion (Rentsync),
    urban_services + immobilia (Building Stack).
    Lot 2 Est & Nord : immeubles_bc (Rimouski), tri_logis (Rouyn), devcore
    (Sept-Îles/Outaouais), multi_logis (Côte-Nord+Lévis), courtemanche (Saguenay).
    Lot 3 Estrie : lachance (82), gesteco (API Umbraco), savouet, laureat_richard,
    desroches. Lot 4 Mauricie/CdQ : location_di, cap_gestion (122), capital_rdr,
    gestion_tb, summum (93). Lot 5 Outaouais/Ch-App : halfred (165), heafey (245),
    brigil (Firecrawl), mellem, quartier_oree, le_st_georges, place_florimay.
    
    Enrichissement complet appliqué : géocodage provincial (+616), POI 1 756
    immeubles, quartier 1 088 annonces jointes (0 hors-zone), normalize corrigé
    (frontières de mots des mois). Registre : 114 sources, 108 connecteurs,
    ~7 350 annonces. Secrets tiers caviardés des fixtures (jetons Mapbox +
    caviardage automatique à l'enregistrement).
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Simon-Pierre Boucher committed 2 days ago (Aug 9, 2026) · 1 file changed +3
  2. Mission 1b (lot 8) — logisbourg, logisco, logisma, lokalia, lynk_olymbec
    - lokalia : +12 annonces (variantes « + DEN » dédupliquées à tort), GPS 100 %
    - logisco : adresse complète JSON-LD, superficie/étage structurés, 4 sections
      de commodités, pages unité en cache
    - lynk_olymbec : valeurs semi-inventées supprimées, prix/dispo réels RentCafe
    - normalize.py : non-chauffé avec trait d'union, branchements combinés,
      « refusés sauf un chat » -> conditions, « (sans utilisation) » neutralisé,
      fourchettes « de X $ à Y $ » = prix plancher
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +20
  3. Mission 1b (lot 5) — gestipro, gimcote, gparadis, groupe_dallaire, hazelview
    - groupe_dallaire : superficie 49 % -> 100 %, inclusions réelles par unité,
      fiches en cache (180 requêtes/sync évitées)
    - gestipro : GPS 100 %, animaux 92 %, inclusions depuis « Frais et charge »
    - gimcote : description/animaux/meublé 100 %, GPS 100 %
    - gparadis : +1 immeuble Saint-Roch (regex pluriels)
    - normalize.py : « à la charge des locataires » -> non inclus,
      « actuellement vacant » -> disponible maintenant
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +9
  4. Mission 1b (lot 6) — headway, huma, immomarketing, immostar, interrent
    - interrent : bug amenities (champ inexistant) corrigé, animaux 0 -> 203
    - immostar : commodités 0 -> 100 % sur les 6 micro-sites, superficie 100 %
    - huma : dates de dispo réelles par unité, adresses et GPS par phase
    - immomarketing : GPS 100 %, cache detail, animaux 53/82
    - normalize.py : animal au singulier, promos neutralisées, prix stationnement
      complet (formats 150 $ et $85)
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +13
  5. Mission 1b (lots 4,7,9-13) + mission 2 — 37 connecteurs mis à niveau, Logis-Experts activé
    Nouveau connecteur logis_experts (logis-experts.com, API JSON) : 516 annonces,
    188 immeubles, prix/adresse/code postal/secteur/lat-lng à 100 %, superficie et
    commodités via pages détail en cache.
    
    Faits saillants de l'audit :
    - lakle : +20 unités (phases 2-3 ignorées), superficie terrasse->habitable
    - dma_locago : +11 unités Tour Frontenac, correction des disponibilités
    - equinoxe_batimo : adresses 0 % -> 100 % (602 annonces)
    - sgiq : lat/lng 88 %, animaux 100 %, sync 83 s -> 4 s
    - msi/picard/progim/capreit… : pages détail migrées vers le cache BD
    - utile : statut hero corrigé (2 annonces faussement « Complet »)
    - per : « Animaux permis : Non » inversé corrigé
    
    normalize.py : ~20 nouveaux cas génériques remontés par les agents (dates
    anglaises mois-jour, animaux singulier/poids/interdits, aires communes,
    piscine/stationnement « chauffé », balcon négatif, vélo, « ($) », semi-meublé,
    superficies balcon/terrasse ignorées, milliers avec virgule, hydro/heat/terrace
    anglais, nombres en toutes lettres) — chaque cas couvert par un test.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +67
  6. Mission 1b (lot 1) — akelius, app_urbains, axia, beaudoin, boardwalk, bribourg
    - akelius : JSON détail découvert (pets 221/247, meublé, inclusions, photos HD)
    - boardwalk : superficie 100 %, dispo réelle, sync 210 s -> 54 s (cache detail)
    - beaudoin : commodités 100 % (additional_features), superficie 67 %
    - app_urbains : superficie 100 %, adresse Le Charlie corrigée
    - normalize.py : « chiens et chats acceptés » -> oui (priorité sur conditions)
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +8
  7. Mission 1b (lots 2-3) — audit et mise à niveau de 10 connecteurs + correctifs normalisation
    Connecteurs : brio, brivia_1sp, brochu, capreit, cogir, contraste, copley,
    cromwell, denux, devimco — fixtures + tests + rapports d'audit.
    
    Faits saillants :
    - cogir : collision d'uid corrigée (283 annonces au lieu de 270), annonces
      fantômes « liste d'attente » exclues
    - capreit : lat/lng 100 %, fiches derrière cache detail (sync 75 s -> 0,4 s)
    - devimco : adresses 84 % -> 100 %, superficie structurée
    - contraste : commodités 0 % -> 100 %, faux « 0 $/mois » supprimés
    - brivia_1sp : API AJAX des plans découverte (dispo réelle, superficies)
    
    normalize.py : négations chauffage/éclairage, « chiens non permis » -> pets
    conditions, options payantes neutralisées (optionnel/en sus), stationnement
    mixte int+ext, étage restreint aux commodités, refrigerator/cooling anglais.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +36
  8. Mission 1a — couche commune : schéma enrichi, normalisation centrale, robustesse, tests
    - schema.Listing : availability_date (ISO/now), area_sqft, pets, furnished,
      details (JSON structuré) + finalize() appliqué à toutes les sources
    - normalize.py : dates FR/EN → ISO, superficies pi²/m², prix robuste,
      types d'unité (chambres→½, 6½+, MDV…), commodités → tags canoniques,
      stationnement/animaux/fumeur/contact extraits du texte
    - db.py : migration auto, délai de grâce (2 syncs) avant désactivation,
      détection de dérive (volume + taux de prix null) avec retraits suspendus,
      cache des pages détail, cache de géocodage (préparé pour la carte)
    - fixtures.py + run.py record : enregistrement/rejeu des réponses HTTP,
      tests de régression pytest par connecteur (snapshot + validité schéma)
    - web.py : nouveaux filtres pets/furnished/available_by/area_min
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 2 days ago (Aug 8, 2026) · 1 file changed +184