"""Tests for import asset batch model.""" from unittest.mock import patch import pytest from sqlalchemy.exc import SQLAlchemyError from assets.models.legacy import import_asset_batch from tests.models.legacy import ar_operations @pytest.fixture def db_fixture(): """Set up the import asset batch table.""" ar_operations.create_tables() def test_create_import_asset_batch_alw_user(db_fixture): """Test import asset batch record creation for alw user.""" response = import_asset_batch.create_import_asset_batch( vendor_contact_id=10, impersonated=0) assert response.status assert response.message['vendor_contact_id'] == 10 assert response.message['impersonated'] == 0 assert response.message['id'] == 1 def test_create_import_asset_batch_oa_user(db_fixture): """Test import asset batch record creation for oa user.""" response = import_asset_batch.create_import_asset_batch( vendor_contact_id=None, impersonated=20) assert response.status assert response.message['impersonated'] == 20 assert response.message['vendor_contact_id'] is None assert response.message['id'] == 1 @patch('assets.connectors.mysql.ar_db_session', side_effect=SQLAlchemyError()) def test_create_import_asset_batch_error(monkeypatch): """Test import asset batch record with exception.""" response = import_asset_batch.create_import_asset_batch( vendor_contact_id=None, impersonated=20) assert response.status == 500