"""Tests for ows-track.""" import pytest from src.constants import service from src.logic import ows_track def test_update_track_success(request_engine): """Test update_track success.""" request_engine[service.OWS_TRACK].add_spec( 'PATCH', '/track', status=200, response={'foo': 'bar'} ) ows_track.update_track(1, {'foo': 'baz'}, [1]) def test_update_track_error(request_engine): """Test update_track error.""" request_engine[service.OWS_TRACK].add_spec( 'PATCH', '/track', status=400, response='some_error' ) expected_error = ( 'update_track failed for tuid 1\n' 'Status code: 400\n' 'Error: "some_error"\n' 'Failed to apply revisions to tracks with tuid [1]' ) with pytest.raises(Exception) as excinfo: ows_track.update_track(1, {'foo': 'baz'}, [1]) assert excinfo.value.args[0] == expected_error def test_update_track_duration_success(request_engine): """Test update_track_duration success.""" request_engine[service.OWS_TRACK].add_spec( 'PATCH', '/track/1/duration', status=200, response={'foo': 'bar'} ) ows_track.update_track_duration(1, {'foo': 'baz'}, [1]) def test_update_track_duration_error(request_engine): """Test update_track_duration error.""" request_engine[service.OWS_TRACK].add_spec( 'PATCH', '/track/1/duration', status=400, response='some_error' ) expected_error = ( 'update_track_duration failed for tuid 1\n' 'Status code: 400\n' 'Error: "some_error"\n' 'Failed to apply revisions to tracks with tuid [1]' ) with pytest.raises(Exception) as excinfo: ows_track.update_track_duration(1, {'foo': 'baz'}, [1]) assert excinfo.value.args[0] == expected_error def test_get_multiple_tracks_success(request_engine): """Test get_multiple_tracks success.""" request_engine[service.OWS_TRACK].add_spec( 'GET', '/tracks', status=200, response={'foo': 'bar'} ) result = ows_track.get_multiple_tracks(['1']) assert result == {'foo': 'bar'} def test_get_multiple_tracks_error(request_engine): """Test get_multiple_tracks error.""" request_engine[service.OWS_TRACK].add_spec( 'GET', '/tracks', status=400, response='some_error' ) expected_error = ( "get_multiple_tracks failed for tuids ['1']\n" 'Status code: 400\n' 'Error: "some_error"' ) with pytest.raises(Exception) as excinfo: ows_track.get_multiple_tracks(['1']) assert excinfo.value.args[0] == expected_error