OCA reporting engine fork for dev and update.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Copyright 2019 ACSONE SA/NV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
class TestReportSubstitute(TransactionCase): def setUp(self): # In the demo file we create a new report for ir.module.module model # with a substation rule from the original report action super(TestReportSubstitute, self).setUp() self.action_report = self.env.ref('base.ir_module_reference_print') self.res_ids = self.env.ref('base.module_base').ids self.substitution_rule = self.env.ref( 'report_substitute.substitution_rule_demo_1' )
def test_substitution(self): res = str(self.action_report.render(res_ids=self.res_ids)[0]) self.assertIn('<div class="page">Substitution Report</div>', res) # remove the substation rule self.substitution_rule.unlink() res = str(self.action_report.render(res_ids=self.res_ids)[0]) self.assertNotIn('<div class="page">Substitution Report</div>', res)
def test_recursive_substitution(self): res = str(self.action_report.render(res_ids=self.res_ids)[0]) self.assertNotIn('<div class="page">Substitution Report 2</div>', res) self.env['ir.actions.report.substitution.rule'].create( { 'substitution_action_report_id': self.env.ref( 'report_substitute.substitution_report_print_2' ).id, 'action_report_id': self.env.ref( 'report_substitute.substitution_report_print' ).id, } ) res = str(self.action_report.render(res_ids=self.res_ids)[0]) self.assertIn('<div class="page">Substitution Report 2</div>', res)
def test_substitution_with_domain(self): self.substitution_rule.write({'domain': "[('name', '=', 'base')]"}) res = str(self.action_report.render(res_ids=self.res_ids)[0]) self.assertIn('<div class="page">Substitution Report</div>', res) self.substitution_rule.write({'domain': "[('name', '!=', 'base')]"}) res = str(self.action_report.render(res_ids=self.res_ids)[0]) self.assertNotIn('<div class="page">Substitution Report</div>', res)
|