38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""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).
|
|
|
|
If `websocket-client` is not installed in the Python environment the
|
|
HttpCase.start_tour() will raise; tests in this file therefore degrade
|
|
gracefully (skipped) when the dependency is absent.
|
|
"""
|
|
|
|
from odoo.tests.common import HttpCase, tagged
|
|
|
|
|
|
@tagged('post_install', '-at_install', 'tour')
|
|
class TestReportsTours(HttpCase):
|
|
|
|
def _start_tour_safe(self, url, tour_name):
|
|
try:
|
|
self.start_tour(url, tour_name, login="admin")
|
|
except (ImportError, ModuleNotFoundError) as e:
|
|
self.skipTest(f"Tour infra not available: {e}")
|
|
|
|
def test_smoke_tour(self):
|
|
self._start_tour_safe("/odoo", "fusion_reports_smoke")
|
|
|
|
def test_period_picker_tour(self):
|
|
self._start_tour_safe("/odoo", "fusion_reports_period_picker")
|
|
|
|
def test_xlsx_wizard_tour(self):
|
|
self._start_tour_safe("/odoo", "fusion_reports_xlsx_wizard")
|
|
|
|
def test_anomaly_list_tour(self):
|
|
self._start_tour_safe("/odoo", "fusion_reports_anomaly_list")
|
|
|
|
def test_viewer_smoke_tour(self):
|
|
self._start_tour_safe("/odoo", "fusion_reports_viewer_smoke")
|