"""Tests for track logic.""" import sentry_sdk from product.constants import service_name from product.models import ows_track as ot_models def test_model_copy_product_tracks_success(ows_request_mocker): """Test copy product tracks success.""" existing_product_id = 93 new_product_id = 98765 orchard_user_id = 'oa:1234' ows_request_mocker.add({ 'method': 'post', 'service': service_name.OWS_TRACK, 'path': '/product/{}/tracks/copy/{}'.format( existing_product_id, new_product_id), 'status': 201 }) ows_request_mocker.apply() result = ot_models.copy_product_tracks( existing_product_id, new_product_id, orchard_user_id) assert result.status == 201 def test_model_copy_product_tracks_exception(mocker): """Test copy product when an exception occurs.""" existing_product_id = 93 new_product_id = 98765 orchard_user_id = 'oa:1234' mocker.patch.object(sentry_sdk, 'capture_exception') result = ot_models.copy_product_tracks( existing_product_id, new_product_id, orchard_user_id) assert result.status == 500 assert sentry_sdk.capture_exception.called def test_model_copy_product_tracks_opp_down(ows_request_mocker): """Test copy product when ows-track returns an error.""" existing_product_id = 93 new_product_id = 98765 orchard_user_id = 'oa:1234' expected_status = 500 ows_request_mocker.add({ 'method': 'post', 'service': service_name.OWS_TRACK, 'path': '/product/{}/tracks/copy/{}'.format( existing_product_id, new_product_id), 'status': 500 }) ows_request_mocker.apply() result = ot_models.copy_product_tracks( existing_product_id, new_product_id, orchard_user_id) assert result.status == expected_status def test_model_create_product_tracks_success(ows_request_mocker): """Test create product tracks success.""" ows_request_mocker.add({ 'method': 'post', 'service': service_name.OWS_TRACK, 'path': '/track', 'status': 201 }) ows_request_mocker.apply() result = ot_models.create_product_track({}) assert result.status == 200 def test_model_create_product_tracks_exception(mocker): """Test create product when an exception occurs.""" mocker.patch.object(sentry_sdk, 'capture_exception') result = ot_models.create_product_track({}) assert result.status == 500 assert sentry_sdk.capture_exception.called