"""Test for ows_lyrics model.""" from unittest.mock import MagicMock from flexmock import flexmock from oto import response from owsrequest import request import pytest from product_workflow.constants import services from product_workflow.models import ows_track @pytest.fixture def ows_track_response(get_tracks_by_product_id_response): """Return response for ows_track for tracks by product_id.""" return response.Response(get_tracks_by_product_id_response) def test_get_tracks_by_product_id( get_tracks_by_product_id_response, product_id, ows_track_response): """Test success for ows_track endpoint.""" mock_response = MagicMock(status_code=200) mock_response.json = MagicMock( return_value=get_tracks_by_product_id_response) (flexmock(request).should_receive( 'get').with_args( services.OWS_TRACK, '/product/{product_id}/tracks'.format(product_id=product_id) ).and_return( mock_response)) result = ows_track.get_tracks_by_product_id(product_id) assert result.status == 200 assert result.message == ows_track_response.message def test_get_tracks_by_product_id_error(product_id, generic_error_payload): """Test error result returned when from ows-track endpoint.""" mock_response = MagicMock(status_code=404) mock_response.json = MagicMock( return_value=generic_error_payload) (flexmock(request).should_receive( 'get').with_args( services.OWS_TRACK, '/product/{product_id}/tracks'.format(product_id=product_id) ).and_return( mock_response)) result = ows_track.get_tracks_by_product_id(product_id) assert result.status == 404 assert result.errors.get('message') == generic_error_payload.get('message') assert result.errors.get('code') == generic_error_payload.get('code')