import datetime import os from pathlib import Path import polars as pl import pytest from selenium.webdriver.chrome.options import Options @pytest.fixture(scope="session", autouse=True) def test_data(): data = [ { "uid": "1", "id": "1", "acheteur_nom": "ACHETEUR 1", "acheteur_id": "123", "titulaire_nom": "TITULAIRE 1", "titulaire_id": "345", "montant": 10, "dateNotification": datetime.date(2025, 1, 1), "codeCPV": "71600000", "donneesActuelles": True, "acheteur_departement_code": "75", "acheteur_departement_nom": "Paris", "acheteur_commune_nom": "Paris", "titulaire_departement_code": "35", "titulaire_departement_nom": "Ille-et-Vilaine", "titulaire_commune_nom": "Rennes", "titulaire_distance": 10, "titulaire_typeIdentifiant": "SIRET", "objet": "Objet test", "dureeRestanteMois": 12, "lieuExecution_code": "75001", "sourceFile": "test.xml", "sourceDataset": "test_dataset", "datePublicationDonnees": datetime.date(2025, 1, 1), "considerationsSociales": "", "considerationsEnvironnementales": "", "type": "Marché", "acheteur_categorie": "Collectivité", "titulaire_categorie": "PME", } ] parquet_path = Path(os.path.abspath("tests/test.parquet")) db_path = parquet_path.parent / "decp.duckdb" print(f"Writing test data to: {parquet_path}") pl.DataFrame(data).write_parquet(parquet_path) # Remove any stale DuckDB from a previous run so src.db rebuilds from # the freshly-written parquet at import time. for artifact in (db_path, db_path.with_suffix(".duckdb.tmp")): if artifact.exists(): artifact.unlink() yield str(parquet_path) def pytest_setup_options(): options = Options() options.add_argument("--window-size=1200,1200 ") options.add_experimental_option( "prefs", { "download.default_directory": "/home/colin/git/decp.info", "download.prompt_for_download": False, "download.directory_upgrade": True, "safebrowsing.enabled": True, }, ) return options