"""Tests for transfer physical product logic.""" from oto import response from ows_product_physical.constant import field from ows_product_physical.logic import product_physical from ows_product_physical.models import ows_project from ows_product_physical.models import persister def test_move_product( mocker, project_id, release_status, feature_engine): """Test transfer update product.""" expected_update_status_code = 200 mocker.patch.object( ows_project, 'get_project_by_id', return_value=response.Response( message={}), autospec=True) mocker.patch.object( product_physical, 'fetch_by_id', return_value=response.Response( message={ field.PROJECT_ID: 123, field.RELEASE_STATUS: release_status, field.COUNTRY_OF_ORIGIN: 3, } ), autospec=True) mocker.patch.object(persister, 'update_product', autospec=True) mocker.patch.object( persister, 'get_release_by_product_code', return_value=response.Response(message=iter([])), autospec=True) data = {} data['project_id'] = project_id data['country_of_origin'] = 3 update_response = product_physical.update(1234, data, None) assert persister.update_product.called assert update_response.message[field.RELEASE_STATUS] == release_status assert update_response.status == expected_update_status_code