Generate Giant observed products
This commit is contained in:
60
tests/test_observed_products.py
Normal file
60
tests/test_observed_products.py
Normal file
@@ -0,0 +1,60 @@
|
||||
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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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("111", observed[0]["representative_upc"])
|
||||
self.assertIn("SB GALA APPLE 5LB", observed[0]["raw_name_examples"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user