"""Tests for product polling endpoint logic.""" from oto import response from availability.logic import product_submission def test_submit_to_poll(mocker, products_data): """Test submit to poll function.""" mock_validators = mocker.patch( 'availability.logic.product_submission.product_submission') mock_helpers = mocker.patch( 'availability.logic.product_submission.helpers') mock_validators.filter_initial_product_fields.return_value = { 'filtered': 'field' } mock_helpers.attributes_to_datetime.side_effect = ( lambda product, _: dict(converted='date', **product)) expected_generator = ( {'converted': 'date', 'filtered': 'field'} for _ in products_data) return_value = response.Response() mock_helpers.create_submitted_products.return_value = return_value result = product_submission.submit_to_poll(products_data) assert result is return_value assert mock_helpers.create_submitted_products.called call_generator = mock_helpers.create_submitted_products.call_args[0][0] for expected, value in zip(expected_generator, call_generator): assert expected == value