"""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_primary_artist_success( monkeypatch, valid_post_product_data, valid_placeholder_upc, valid_create_response): """Assert release_artist table was written to.""" session = Mock() session.flush = Mock() valid_post_product_data[field.UPC] = valid_placeholder_upc resp = persister._insert_release_primary_artist( session, valid_post_product_data, 47) assert session.flush.called assert resp.status == 201 def test_persister_insert_release_primary_artist_fail( monkeypatch, valid_post_product_data, valid_create_response_error): """Assert release_artist 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_primary_artist( session, valid_post_product_data, 47) assert resp.status == 500 assert sentry_sdk.capture_exception.called