# pylint: disable=redefined-outer-name,unused-argument,invalid-name import pytest from dapd_db_schema.schemas.uow_meta import AuditLog, UnitOfWorkStatusEnum from dapd_exporter_lambda.services.audit_log import AuditLogService pytestmark = [pytest.mark.integration] def test_log_units_of_work_created__ok(api_db, unit_of_work): service = AuditLogService(api_db) service.log_units_of_work_created([unit_of_work]) assert api_db.query(AuditLog).count() == 1 audit_log: AuditLog = api_db.query(AuditLog).first() assert audit_log.new_status == UnitOfWorkStatusEnum.EXPORT_SCHEDULED assert audit_log.extra_data is None assert audit_log.uow == unit_of_work def test_log_units_of_work_created__empty_list(api_db, unit_of_work): service = AuditLogService(api_db) service.log_units_of_work_created([]) assert api_db.query(AuditLog).count() == 0 def test_log_units_of_work_creation_failed__ok(api_db, unit_of_work): service = AuditLogService(api_db) service.log_units_of_work_creation_failed([unit_of_work], error='foo') assert api_db.query(AuditLog).count() == 1 audit_log: AuditLog = api_db.query(AuditLog).first() assert audit_log.new_status == UnitOfWorkStatusEnum.EXPORT_FAILED assert audit_log.extra_data == {'error': 'foo'} assert audit_log.uow == unit_of_work def test_log_units_of_work_completed__ok(api_db, unit_of_work): service = AuditLogService(api_db) service.log_units_of_work_completed([unit_of_work]) assert api_db.query(AuditLog).count() == 1 audit_log: AuditLog = api_db.query(AuditLog).first() assert audit_log.new_status == UnitOfWorkStatusEnum.EXPORT_COMPLETED assert audit_log.extra_data is None assert audit_log.uow == unit_of_work