"""Tests for copy product tracks handler.""" from oto import response from ows_product_physical.logic import product_physical_tracks as track_logic product_id = 12345 new_product_id = 99999 def test_handler_copy_product_success(client, mocker): """Test copy product tracks success.""" copy_product = mocker.patch.object( track_logic, 'copy_product_tracks', return_value=response.Response(status=201)) url = '/product/{}/tracks/copy/{}'.format(product_id, new_product_id) result = client.post(url, headers={'Content-Type': 'application/json'}) copy_product.assert_called_once_with(product_id, new_product_id) assert result.status_code == 201 def test_handler_copy_product_grass_request_blocking( client, valid_post_header): """Test copy product tracks grass request blocking.""" url = '/product/{}/tracks/copy/{}'.format(product_id, new_product_id) result = client.post(url, headers=valid_post_header) assert result.status_code == 400 def test_handler_error_from_logic(client, mocker): """Test that errors from logic layer are passed through.""" copy_product = mocker.patch.object( track_logic, 'copy_product_tracks', return_value=response.Response(status=403)) url = '/product/{}/tracks/copy/{}'.format(product_id, new_product_id) result = client.post(url, headers={'Content-Type': 'application/json'}) copy_product.assert_called_once_with(product_id, new_product_id) assert result.status_code == 403