97 lines
3.5 KiB
Python
97 lines
3.5 KiB
Python
import unittest
|
|
|
|
import report_pipeline_status
|
|
|
|
|
|
class PipelineStatusTests(unittest.TestCase):
|
|
def test_build_status_summary_reports_unresolved_and_reviewed_counts(self):
|
|
summary = report_pipeline_status.build_status_summary(
|
|
giant_orders=[{"order_id": "g1"}],
|
|
giant_items=[{"order_id": "g1", "line_no": "1"}],
|
|
giant_enriched=[
|
|
{
|
|
"retailer": "giant",
|
|
"order_id": "g1",
|
|
"line_no": "1",
|
|
"normalized_item_id": "gnorm_banana",
|
|
"item_name_norm": "BANANA",
|
|
"item_name": "FRESH BANANA",
|
|
"retailer_item_id": "1",
|
|
"upc": "4011",
|
|
"brand_guess": "",
|
|
"variant": "",
|
|
"size_value": "",
|
|
"size_unit": "",
|
|
"pack_qty": "",
|
|
"measure_type": "weight",
|
|
"image_url": "",
|
|
"is_store_brand": "false",
|
|
"is_fee": "false",
|
|
"is_discount_line": "false",
|
|
"is_coupon_line": "false",
|
|
"order_date": "2026-03-01",
|
|
"line_total": "1.29",
|
|
}
|
|
],
|
|
costco_orders=[],
|
|
costco_items=[],
|
|
costco_enriched=[],
|
|
purchases=[
|
|
{
|
|
"normalized_item_id": "gnorm_banana",
|
|
"catalog_id": "cat_banana",
|
|
"resolution_action": "",
|
|
"is_fee": "false",
|
|
"is_discount_line": "false",
|
|
"is_coupon_line": "false",
|
|
"retailer": "giant",
|
|
"raw_item_name": "FRESH BANANA",
|
|
"normalized_item_name": "BANANA",
|
|
"upc": "4011",
|
|
"line_total": "1.29",
|
|
},
|
|
{
|
|
"normalized_item_id": "cnorm_lime",
|
|
"catalog_id": "",
|
|
"resolution_action": "",
|
|
"is_fee": "false",
|
|
"is_discount_line": "false",
|
|
"is_coupon_line": "false",
|
|
"retailer": "costco",
|
|
"raw_item_name": "LIME 5LB",
|
|
"normalized_item_name": "LIME",
|
|
"upc": "",
|
|
"line_total": "4.99",
|
|
},
|
|
],
|
|
resolutions=[],
|
|
links=[
|
|
{
|
|
"normalized_item_id": "gnorm_banana",
|
|
"catalog_id": "cat_banana",
|
|
"review_status": "approved",
|
|
}
|
|
],
|
|
catalog=[
|
|
{
|
|
"catalog_id": "cat_banana",
|
|
"catalog_name": "BANANA",
|
|
"product_type": "banana",
|
|
"category": "produce",
|
|
}
|
|
],
|
|
)
|
|
|
|
counts = {row["stage"]: row["count"] for row in summary}
|
|
self.assertEqual(1, counts["raw_orders"])
|
|
self.assertEqual(1, counts["raw_items"])
|
|
self.assertEqual(1, counts["normalized_items"])
|
|
self.assertEqual(1, counts["linked_purchase_rows"])
|
|
self.assertEqual(1, counts["unresolved_purchase_rows"])
|
|
self.assertEqual(1, counts["review_queue_normalized_items"])
|
|
self.assertEqual(0, counts["unresolved_not_in_review_rows"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|