"""Tests for Persister.""" from unittest.mock import MagicMock from unittest.mock import Mock import sentry_sdk from sqlalchemy.exc import OperationalError from ows_product_physical.models import persister def test_persister_create_release_status_success( monkeypatch, db_fixture, valid_post_product_data, valid_create_response, valid_vendor_id, valid_project_code): """Assert release_status data was successfully inserted.""" session = Mock() session.flush = MagicMock(return_value=None) resp = persister._create_release_status( session, 47, valid_vendor_id) assert session.flush.called assert resp.status == 201 def test_persister_create_release_status_fail( monkeypatch, db_fixture, valid_post_product_data, valid_create_response_error, valid_vendor_id): """Assert exception was raised when release_status couldn't be inserted.""" monkeypatch.setattr( sentry_sdk, 'capture_exception', value=MagicMock()) session = Mock() session.flush = MagicMock(side_effect=OperationalError('', None, None)) resp = persister._create_release_status( session, 47, valid_vendor_id) assert resp.status == 500 assert sentry_sdk.capture_exception.called