"""Tests for fusion.auto.reconcile.wizard.""" from odoo.tests.common import TransactionCase, tagged from . import _factories as f @tagged('post_install', '-at_install') class TestAutoReconcileWizard(TransactionCase): def setUp(self): super().setUp() self.partner = self.env['res.partner'].create({'name': 'Auto Wizard Partner'}) self.journal = f.make_bank_journal(self.env, name='Auto Bank', code='AUBK') def test_wizard_runs_and_reconciles_matchable_lines(self): statement = f.make_bank_statement(self.env, journal=self.journal) for amount in [100.00, 200.00]: f.make_invoice(self.env, partner=self.partner, amount=amount) f.make_bank_line( self.env, statement=statement, amount=amount, partner=self.partner) wizard = self.env['fusion.auto.reconcile.wizard'].create({ 'journal_id': self.journal.id, 'strategy': 'auto', 'only_with_partner': True, }) wizard.action_run() self.assertEqual(wizard.state, 'done') self.assertGreaterEqual(wizard.reconciled_count, 2) def test_wizard_filters_by_date_range(self): wizard = self.env['fusion.auto.reconcile.wizard'].create({ 'journal_id': self.journal.id, 'date_from': '2099-01-01', 'date_to': '2099-12-31', 'strategy': 'auto', }) wizard.action_run() self.assertEqual(wizard.reconciled_count, 0) def test_wizard_skips_when_only_with_partner_excludes_orphans(self): statement = f.make_bank_statement(self.env, journal=self.journal) f.make_bank_line(self.env, statement=statement, amount=999, partner=None) wizard = self.env['fusion.auto.reconcile.wizard'].create({ 'journal_id': self.journal.id, 'strategy': 'auto', 'only_with_partner': True, }) wizard.action_run() self.assertEqual(wizard.reconciled_count, 0)