Resto·Ka — tous les restaurants du Québec, menus complets et prix réels (famille ·Ka)
Python 69.3%
TypeScript 16.7%
CSS 7.9%
JavaScript 4.7%
HTML 1.4%
1# ==============================================================================2# Author: Simon-Pierre Boucher <contact@spboucher.ai>3# File: tests/test_tastet.py4# Desc: Connecteur Tastet (découverte éditoriale) — parse_maps_query5# (le « + » est le SÉPARATEUR nom/adresse, ville par suffixe6# VILLE_REGION, code postal en fin) et parse_review (lien Maps,7# tel:, og:image ; pages sans fiche resto -> None).8# ==============================================================================9from restoka.connectors.tastet import parse_maps_query, parse_review101112def test_parse_maps_query_complet():13 q = "Cantine%20Dukana+1556 Avenue Laurier Est Montréal H2J 1H9"14 name, addr, city, postal = parse_maps_query(q)15 assert name == "Cantine Dukana"16 assert addr == "1556 Avenue Laurier Est"17 assert city == "Montréal"18 assert postal == "H2J1H9"192021def test_parse_maps_query_ville_multi_tokens():22 q = "Le Resto+12 Rue Racine Saguenay G7H 1Z5"23 name, addr, city, postal = parse_maps_query(q)24 assert (name, city, postal) == ("Le Resto", "Saguenay", "G7H1Z5")25 assert addr == "12 Rue Racine"262728def test_parse_maps_query_sans_postal_ni_ville():29 name, addr, city, postal = parse_maps_query("Chez Nous+99 Rue Untel")30 assert name == "Chez Nous" and addr == "99 Rue Untel"31 assert city == "" and postal == ""323334PAGE = """35<html><head>36<meta property="og:image" content="https://tastet.ca/img/dukana.jpg&x=1">37</head><body>38<a href="https://www.google.com/maps/search/?api=1&query=Cantine%20Dukana+1556 Avenue Laurier Est Montréal H2J 1H9">Maps</a>39<a href="tel:+15144190669">Appeler</a>40</body></html>41"""424344def test_parse_review():45 p = parse_review(PAGE)46 assert p["name"] == "Cantine Dukana"47 assert p["city"] == "Montréal"48 assert p["postal_code"] == "H2J1H9"49 assert p["phone"] == "+15144190669"50 assert p["image"].startswith("https://tastet.ca/img/")515253def test_parse_review_sans_fiche():54 # page éditoriale sans lien Google Maps : pas une fiche resto55 assert parse_review("<html><body>Top 10 des terrasses</body></html>") \56 is None57