"""Tests for handlers.""" import json from oto import response from ows_product_physical.constant import header from ows_product_physical.logic import product_physical_tracks def test_handler_put_product_publishing_obligation_success( client, valid_put_header, valid_put_product_publishing_obligation_data, mocker): """Test `PUT /product/{productId}/tracks/publishing-obligation` success.""" mocker.patch.object( product_physical_tracks, 'update_publishing_obligations', return_value=response.Response({}), autospec=True) result = client.put( '/product/1234/tracks/publishing-obligation', headers=valid_put_header, data=json.dumps(valid_put_product_publishing_obligation_data)) assert result.status_code == 200 assert product_physical_tracks.update_publishing_obligations.called def test_handler_put_product_publishing_obligation_header_error( client, valid_get_header): """Test `PUT /product/{productId}/tracks/publishing-obligation` fails. Should fail on invalid headers. """ invalid_header = valid_get_header invalid_header[header.GRASS_ACCOUNT_TYPE] = 'banana' result = client.put( '/product/1234/tracks/publishing-obligation', headers=invalid_header) assert result.status_code == 400