"""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.constant import field from ows_product_physical.models import persister def test_persister_insert_release_subgenre( monkeypatch, db_fixture, valid_post_product_data, valid_placeholder_upc, valid_create_response): """Assert release_subgenre table was written to.""" mock_response = Mock() valid_post_product_data[field.UPC] = valid_placeholder_upc session = Mock() session.flush = MagicMock(return_value=mock_response) resp = persister._insert_release_subgenre( session, valid_post_product_data, 47) assert session.flush.called assert resp.status == 201 def test_persister_insert_release_subgenre_fail( monkeypatch, db_fixture, valid_post_product_data, valid_create_response_error): """Assert release_subgenre fail exception was captured.""" monkeypatch.setattr( sentry_sdk, 'capture_exception', value=MagicMock()) session = Mock() session.flush = MagicMock(side_effect=OperationalError('', None, None)) valid_post_product_data['upc'] = 'upc' resp = persister._insert_release_subgenre( session, valid_post_product_data, 47) assert resp.status == 500 assert sentry_sdk.capture_exception.called