"""Tests for Persister.""" from unittest.mock import MagicMock from oto import response import sentry_sdk from sqlalchemy.exc import OperationalError from ows_product_physical.models import persister def test_persister_get_product_by_id_success( monkeypatch, db_fixture, valid_post_product_data): """Test fetch product by id success state.""" mock_response = response.Response( message='whatever', status=200) monkeypatch.setattr( persister, '_fetch_product_by_release_id', value=MagicMock( return_value=mock_response)) resp = persister.get_product_by_id(47) assert resp.status == 200 assert persister._fetch_product_by_release_id.called def test_persister_get_product_by_id_db_fail(monkeypatch): """Assert fetch product by id fail exception was captured.""" monkeypatch.setattr( sentry_sdk, 'capture_exception', value=MagicMock()) monkeypatch.setattr( persister, '_fetch_product_by_release_id', value=MagicMock( side_effect=OperationalError('', None, None))) resp = persister.get_product_by_id(47) assert resp.status == 500 assert sentry_sdk.capture_exception.called