"""Tests for get_carveins_for_upc.""" from oto import response from ows_product_physical.models import persister def test_get_carveins_for_upc_with_carveouts(mocker, valid_placeholder_upc): """It returns the complement of the carved-out store IDs.""" mocker.patch.object( persister.ows_carveouts, 'get_release_carveouts_for_upc', return_value=response.Response( message={ '738': True, '739': True, } ), ) result = persister.get_carveins_for_upc(valid_placeholder_upc) assert result == {740, 696, 737, 1705, 1901} def test_get_carveins_for_upc_with_no_carveouts_response(mocker, valid_placeholder_upc): """It returns all store IDs when no carveout response is returned.""" mocker.patch.object( persister.ows_carveouts, 'get_release_carveouts_for_upc', return_value=None, ) result = persister.get_carveins_for_upc(valid_placeholder_upc) assert result == set(persister.ALL_STORE_IDS) def test_get_carveins_for_upc_with_empty_carveouts(mocker, valid_placeholder_upc): """It returns all store IDs when carveouts are empty.""" mocker.patch.object( persister.ows_carveouts, 'get_release_carveouts_for_upc', return_value=response.Response(message={}), ) result = persister.get_carveins_for_upc(valid_placeholder_upc) assert result == set(persister.ALL_STORE_IDS)