1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# -*- coding: utf-8 -*-
import base64
from odoo.tests.common import TransactionCase
from odoo.modules.module import get_module_resource
# from odoo.addons.jasper_reports.controllers.main import ReportController
# from odoo.addons.web.controllers.main import ReportController
class TestJasperReport(TransactionCase):
def setUp(self):
super(TestJasperReport, self).setUp()
# First we have to convert .jrxml file to binary
# In order to create a new report record
# File path
path = get_module_resource('jasper_reports', 'tests', 'user.jrxml')
# Opening file
file = open(path, 'rb')
# Reading
file_content = file.read()
# Converting as base64
report_file = base64.b64encode(file_content)
self.JasperReport = self.env['ir.actions.report']
self.users_model = self.env['ir.model'].search([
('model', '=', 'res.users')])
self.report_data = self.JasperReport.create({
'name': 'Jasper Test Report',
'model': 'res.users',
'attachment_use': True,
'model_id': self.users_model and
self.users_model.id or False,
'jasper_output': 'pdf',
'report_name': 'res_users_jasper',
'jasper_report': True,
'jasper_file_ids': [
(0, 0, {
'default': True,
'filename': 'user.jrxml',
'file': report_file,
})
]
})
def test_report(self):
report_object = self.env['ir.actions.report']
report_name = self.report_data.report_name
report = report_object._get_report_from_name(report_name)
docs = self.env['res.users'].search([], limit=1)
self.assertEqual(report.report_type, 'qweb-pdf')
# We are giving travis postgres cradentials for
# db connectivity in order to make sure that test case
# can connect with database.
self.env['ir.config_parameter'].set_param('db_user', 'postgres')
self.env['ir.config_parameter'].set_param('db_password', '')
return report.render_jasper(docs.ids, {})
|