"""Test get upc by product id in persister.""" from unittest.mock import MagicMock import sentry_sdk from sqlalchemy.orm.session import Session from ows_product_physical.models import persister def test_persister_get_upc_by_product_id( db_with_data, db_release_id, valid_release_upc): """Assert the get upc by release id success case.""" product_id = db_release_id resp = persister.get_upc_by_product_id(product_id) assert resp.status == 200 assert resp.message == valid_release_upc def test_persister_get_upc_by_product_id_not_found(db_with_data): """Assert get upc is none when passed a non-existent product_id.""" product_id = 1111 resp = persister.get_upc_by_product_id(product_id) assert resp.status == 200 assert resp.message is None def test_persister_get_upc_by_prodcut_id_failure(db_with_data, monkeypatch): """Assert get upc is none when passed a non-existent product_id.""" monkeypatch.delattr( Session, 'execute', raising=True) monkeypatch.setattr( sentry_sdk, 'capture_exception', value=MagicMock()) product_id = 1111 resp = persister.get_upc_by_product_id(product_id) assert resp.status == 500 assert sentry_sdk.capture_exception.called