import json from pathlib import Path from opengoods.etl.load import ensure_source, load_record from opengoods.etl.quality import compute_quality from opengoods.etl.transform import transform FIXTURE = json.loads((Path(__file__).parent / "fixtures" / "off_product.json").read_text()) def test_quality_score_set_on_load(db_conn): source_id = ensure_source(db_conn) rec = transform(FIXTURE) pid = load_record(db_conn, rec, source_id, FIXTURE) stored = float( db_conn.execute("SELECT quality_score FROM product WHERE id = %s", (pid,)).fetchone()[0] ) assert 0.0 < stored <= 1.0 # The persisted value matches a fresh recomputation. assert abs(stored - compute_quality(db_conn, pid)) < 1e-9