"""Tests for dms_delivery_spec logic.""" import pytest from src.constants import fields from src.constants import maxwell from src.logic import dms_delivery_spec @pytest.mark.parametrize( 'records, update_call', ( ({maxwell.TYPE_INSERT: [{}]}, 0), ({maxwell.TYPE_UPDATE: [ {fields.ORDER_TYPE: 't1', fields.DMS_MASTER_MASTER_ID: 1, fields.ENCODING: 'S', fields.DELIVERY: 'N'}, {fields.ORDER_TYPE: 't2', fields.DMS_MASTER_MASTER_ID: 2, fields.ENCODING: 'Y', fields.DELIVERY: 'S'} ]}, 2), ) ) def test_process_dms_delivery_spec(records, update_call, mocker): """Test process_dms_delivery_spec function.""" mocked_jobs = mocker.patch('src.logic.dms_delivery_spec.jobs') mocked_update = mocked_jobs.set_store_spec dms_delivery_spec.process_dms_delivery_spec(records) assert mocked_update.call_count == update_call if update_call: assert [a[0] for a in mocked_update.call_args_list] == [ (d[fields.ORDER_TYPE], d[fields.DMS_MASTER_MASTER_ID], d[fields.ENCODING], d[fields.DELIVERY]) for d in records[maxwell.TYPE_UPDATE] ]