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.
60 lines
2.0 KiB
60 lines
2.0 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2009-2017 Noviat.
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
from openerp.tests.common import TransactionCase
|
|
|
|
|
|
class TestCommonXls(TransactionCase):
|
|
""" Common tests for all XLS Exports """
|
|
|
|
def setUp(self):
|
|
super(TestCommonXls, self).setUp()
|
|
self.model = self.env[self._getReportModel()]
|
|
self.xls_report_name = self._getXlsReportName()
|
|
ctx = {'xls_export': 1}
|
|
self.xls_action_name = self._getXlsReportActionName()
|
|
self.xls_action = self.env.ref(self.xls_action_name).with_context(ctx)
|
|
wiz_vals = {'chart_account_id': self.env.ref('account.chart0').id}
|
|
wiz_vals.update(self._getBaseFilters())
|
|
self.report = self.model.with_context(ctx).create(wiz_vals)
|
|
|
|
def common_test_01_action_xls(self):
|
|
""" Check if report XLS action is correct """
|
|
report_action = self.report.xls_export()
|
|
self.assertDictContainsSubset(
|
|
{'type': 'ir.actions.report.xml',
|
|
'report_name': self.xls_report_name},
|
|
report_action)
|
|
self.render_dict = report_action['datas']
|
|
|
|
def common_test_02_render_xls(self):
|
|
report_xls = self.xls_action.render_report(
|
|
self.report.ids,
|
|
self.xls_report_name,
|
|
self.render_dict)
|
|
self.assertGreaterEqual(len(report_xls[0]), 1)
|
|
self.assertEqual(report_xls[1], 'xls')
|
|
|
|
def _getReportModel(self):
|
|
"""
|
|
:return: the report model name
|
|
"""
|
|
raise NotImplementedError()
|
|
|
|
def _getXlsReportName(self):
|
|
"""
|
|
:return: the xls report name
|
|
"""
|
|
raise NotImplementedError()
|
|
|
|
def _getXlsReportActionName(self):
|
|
"""
|
|
:return: the xls report action name
|
|
"""
|
|
raise NotImplementedError()
|
|
|
|
def _getBaseFilters(self):
|
|
"""
|
|
:return: the minimum required filters to generate report
|
|
"""
|
|
raise NotImplementedError()
|