"""Tests for WorksheetPaymentContractAdvance model.""" from decimal import Decimal from abacus_common_logic.connectors.database import db from sqlalchemy import select from payment.models import WorksheetTaxCorrection def test_create(mock_statement_periods, mock_accounts, mock_contracts): """Test create WorksheetPaymentContractAdvance instance.""" WorksheetTaxCorrection.create( contract_id=1, account_id=1, correction_statement_period_id=1, payable_detail_type_id=1, amount=Decimal('20.00'), currency_code='USD', note='test note', ) worksheets = db.session.execute(select(WorksheetTaxCorrection)).scalars().all() worksheet = worksheets[0] assert len(worksheets) == 1 assert worksheet.contract_id == 1 assert worksheet.account_id == 1 assert worksheet.correction_statement_period_id == 1 assert worksheet.payable_detail_type_id == 1 assert worksheet.amount == Decimal('20.00') assert worksheet.currency_code == 'USD' assert worksheet.note == 'test note' def test_soft_delete_ids(mock_statement_periods, mock_contracts, mock_accounts): """Test soft_delete_by_ids method.""" worksheet_tax_correction_1 = WorksheetTaxCorrection.create( worksheet_tax_correction_id=1, contract_id=1, account_id=1, correction_statement_period_id=1, payable_detail_type_id=1, amount=Decimal('20.00'), currency_code='USD', ) WorksheetTaxCorrection.create( worksheet_tax_correction_id=2, contract_id=2, account_id=2, correction_statement_period_id=1, payable_detail_type_id=1, amount=Decimal('20.00'), currency_code='USD', ) WorksheetTaxCorrection.soft_delete_by_ids([1]) assert db.session.execute( select(WorksheetTaxCorrection).where( WorksheetTaxCorrection.deleted_at != None # noqa ) ).scalars().all() == [worksheet_tax_correction_1]