import unittest import build_observed_products class ObservedProductTests(unittest.TestCase): def test_build_observed_products_aggregates_rows_with_same_key(self): rows = [ { "retailer": "giant", "order_id": "1", "line_no": "1", "order_date": "2026-01-01", "item_name": "SB GALA APPLE 5LB", "item_name_norm": "GALA APPLE", "retailer_item_id": "11", "upc": "111", "brand_guess": "SB", "variant": "", "size_value": "5", "size_unit": "lb", "pack_qty": "", "measure_type": "weight", "image_url": "https://example.test/a.jpg", "is_store_brand": "true", "is_fee": "false", "is_discount_line": "false", "is_coupon_line": "false", "line_total": "7.99", }, { "retailer": "giant", "order_id": "2", "line_no": "1", "order_date": "2026-01-10", "item_name": "SB GALA APPLE 5 LB", "item_name_norm": "GALA APPLE", "retailer_item_id": "11", "upc": "111", "brand_guess": "SB", "variant": "", "size_value": "5", "size_unit": "lb", "pack_qty": "", "measure_type": "weight", "image_url": "", "is_store_brand": "true", "is_fee": "false", "is_discount_line": "false", "is_coupon_line": "false", "line_total": "8.49", }, ] observed = build_observed_products.build_observed_products(rows) self.assertEqual(1, len(observed)) self.assertEqual("2", observed[0]["times_seen"]) self.assertEqual("2026-01-01", observed[0]["first_seen_date"]) self.assertEqual("2026-01-10", observed[0]["last_seen_date"]) self.assertEqual("11", observed[0]["representative_retailer_item_id"]) self.assertEqual("111", observed[0]["representative_upc"]) self.assertIn("SB GALA APPLE 5LB", observed[0]["raw_name_examples"]) if __name__ == "__main__": unittest.main()