"""Test for ows-track.""" from owsrequest import request from owsrequest import test_utils import pytest from assets.constants import error from assets.constants import service from assets.models import ows_track @pytest.mark.parametrize( 'track_id, returned_status, expected_status, expected_message', [ (1, 200, 200, error.SUCCESS_CODE), (1, 404, 404, error.ERROR_TRACK_NOT_FOUND), (1, 400, 500, None)]) def test_get_track_by_id( monkeypatch, track_id, returned_status, expected_status, expected_message): """Test getting track by track id.""" path = service.OWS_TRACK_BY_TRACK_ID.format(track_id=track_id) call_specs = [{ 'service': service.OWS_TRACK, 'path': path, 'status': returned_status, 'json': expected_message}] monkeypatch.setattr( request, 'get', test_utils.mock_ows_requests(call_specs)) response = ows_track.get_track_by_id(track_id) assert response.status == expected_status if returned_status == 200: assert response.message == expected_message else: assert response.errors.get('message') == expected_message @pytest.mark.parametrize( 'returned_status, expected_status, expected_message', [ (200, 200, error.SUCCESS_CODE), (404, 404, error.ERROR_RELEASE_NOT_FOUND), (500, 500, None)]) def test_get_product_tracks_success( monkeypatch, returned_status, expected_status, expected_message): """Test getting product tracks.""" product_id = 12321 path = '/product/12321/tracks' call_specs = [{ 'service': service.OWS_TRACK, 'path': path, 'status': expected_status, 'json': expected_message}] monkeypatch.setattr( request, 'get', test_utils.mock_ows_requests(call_specs)) response = ows_track.get_tracks_by_product_id(product_id) assert response.status == expected_status if returned_status == 200: assert response.message == expected_message else: assert response.errors.get('message') == expected_message