"""Tests for ows-track model.""" from contextlib import nullcontext as does_not_raise import pytest from product_review.constants import services from product_review.models import ows_track as ows_track_model @pytest.mark.parametrize( ( "test_description", "response_status", "expected_result", "expected_raise", "expected_raise_message", ), [ ( "Success", 200, {"applesauce": "bananas"}, does_not_raise(), "None", ), ( "Error", 808, None, pytest.raises(Exception), '{"status": 808, "code": "ows_track_error", ' '"message": {"applesauce": "bananas"}}', ), ], ) def test_get_tracks_on_product( test_description, response_status, expected_result, expected_raise, expected_raise_message, request_engine, app_context, ): """Test get_tracks_on_product.""" request_engine[services.OWS_TRACK].add_spec( "GET", "/product/12321/tracks", {"applesauce": "bananas"}, status=response_status, ) result = None with expected_raise as er: result = ows_track_model.get_tracks_on_product(12321) assert str(getattr(er, "value", None)) == expected_raise_message assert result == expected_result