"""Tests for ows-product-configuration Model.""" from owsrequest import request as requests import sentry_sdk from ows_product_physical.constant import service_name from ows_product_physical.models import ows_product_configuration def test_get_distribution_format_by_id( ows_request_mocker, distribution_format_response): """Test successful distribuion format record by id get.""" distribution_format_id = 74 ows_request_mocker.mock_response( service_name.OWS_PRODUCT_CONFIGURATION, '/distribution-format/{}'.format(distribution_format_id), method='get', status=200, json=distribution_format_response ) product_response = \ ows_product_configuration.get_distribution_format_by_id( distribution_format_id) assert product_response.status == 200 assert product_response.message == distribution_format_response def test_get_distribution_format_by_id_with_exception(mocker): """Test exception raise for connection error.""" distribution_format_id = 74 mocker.patch.object( sentry_sdk, 'capture_exception', autospec=True) mocker.patch.object(requests, 'get', side_effect=Exception) product_response = \ ows_product_configuration.get_distribution_format_by_id( distribution_format_id) assert product_response.status == 500 assert sentry_sdk.capture_exception.called assert product_response.errors == { 'code': 'internal_error', 'message': 'error fetching record'} def test_get_supply_chain_defaults_success( ows_request_mocker, supply_chain_default_response): """Test successful supply chain default get.""" ows_request_mocker.mock_response( service_name.OWS_PRODUCT_CONFIGURATION, '/supply-chains/defaults', method='get', status=200, json=supply_chain_default_response) product_response = ows_product_configuration.get_supply_chain_defaults() assert product_response.status == 200 assert product_response.message == supply_chain_default_response def test_get_supply_chain_defaults_with_exception(mocker): """Test exception raise for connection error.""" mocker.patch.object( sentry_sdk, 'capture_exception', autospec=True) mocker.patch.object(requests, 'get', side_effect=Exception) product_response = ows_product_configuration.get_supply_chain_defaults() assert product_response.status == 500 assert sentry_sdk.capture_exception.called assert product_response.errors == { 'code': 'internal_error', 'message': 'error fetching record'}