"""Python wrappers that run the OWL tours via HttpCase.start_tour. Tours require an HTTP server + headless browser. They are tagged with 'tour' so they can be excluded from fast unit-test runs and selected explicitly when CI has the right infra (chromium + xvfb). """ from odoo.tests.common import HttpCase, tagged @tagged('post_install', '-at_install', 'tour') class TestBankRecTours(HttpCase): def test_smoke_tour(self): # Just verify the smoke tour runs without crashing self.start_tour("/odoo", "fusion_bank_rec_smoke", login="admin") def test_select_line_tour(self): # Need a bank line to select — create one partner = self.env['res.partner'].create({'name': 'Tour Partner'}) journal = self.env['account.journal'].create({ 'name': 'Tour Bank', 'type': 'bank', 'code': 'TOURB', }) statement = self.env['account.bank.statement'].create({ 'name': 'Tour Stmt', 'journal_id': journal.id, }) self.env['account.bank.statement.line'].create({ 'statement_id': statement.id, 'journal_id': journal.id, 'date': '2026-04-19', 'payment_ref': 'Tour line', 'amount': 100, 'partner_id': partner.id, }) self.start_tour("/odoo", "fusion_bank_rec_select_line", login="admin") def test_accept_suggestion_tour(self): # Skip if too slow / dataset issues — tour itself is the smoke self.skipTest("Tour 3 requires AI provider config; skipping in CI smoke") def test_auto_reconcile_wizard_tour(self): self.start_tour("/odoo", "fusion_bank_rec_auto_reconcile_wizard", login="admin") def test_load_more_tour(self): self.start_tour("/odoo", "fusion_bank_rec_load_more", login="admin")