"""Tests for delivery history logic.""" from ows_product_physical.connector.mysql import db_session from ows_product_physical.constant.delivery_order import ENCODER_ID from ows_product_physical.models.delivery_history import DeliveryHistory from ows_product_physical.models.delivery_history import save_delivery_history from ows_product_physical.models.order_product import OrderProduct def test_save_delivery_history(db_fixture, db_with_data, db_releases): """Test save_delivery_history persists product records.""" products = list(map( lambda release: OrderProduct( order_id=1, product_id=release['release_id']), db_releases)) upcs = list(map( lambda release: release['upc'], db_releases)) with db_session() as session: save_delivery_history(products, 1705, session) result = session.query(DeliveryHistory)\ .filter(DeliveryHistory.upc.in_(upcs)).all() for release in db_releases: db_entry = next(filter(lambda x: x.upc == release['upc'], result)) assert db_entry assert db_entry.encoder_id == ENCODER_ID assert db_entry.upc == release['upc'] assert db_entry.customer_master_master_id == 1705 assert db_entry.date_delivered assert db_entry.package_size == 0