diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-09-13 12:05:33 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-09-13 12:05:33 +0700 |
| commit | 8f3d096dbae18bacd95796d03b17d4d94a806c85 (patch) | |
| tree | ae90032724dabe417b907db43145639e6df9565f /jasper_reports/tests | |
| parent | 0d87fec0c4c6fb573b1a09076f6d50844d8d0a80 (diff) | |
jasper report integration
Diffstat (limited to 'jasper_reports/tests')
| -rwxr-xr-x | jasper_reports/tests/__init__.py | 2 | ||||
| -rwxr-xr-x | jasper_reports/tests/test_jasper_report.py | 56 | ||||
| -rwxr-xr-x | jasper_reports/tests/user.jrxml | 119 |
3 files changed, 177 insertions, 0 deletions
diff --git a/jasper_reports/tests/__init__.py b/jasper_reports/tests/__init__.py new file mode 100755 index 0000000..7b8f839 --- /dev/null +++ b/jasper_reports/tests/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import test_jasper_report diff --git a/jasper_reports/tests/test_jasper_report.py b/jasper_reports/tests/test_jasper_report.py new file mode 100755 index 0000000..34dd701 --- /dev/null +++ b/jasper_reports/tests/test_jasper_report.py @@ -0,0 +1,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, {}) diff --git a/jasper_reports/tests/user.jrxml b/jasper_reports/tests/user.jrxml new file mode 100755 index 0000000..d003429 --- /dev/null +++ b/jasper_reports/tests/user.jrxml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> + <property name="ireport.zoom" value="1.0"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="48"/> + <style name="table"> + <box> + <pen lineWidth="1.0" lineColor="#000000"/> + </box> + </style> + <style name="table_TH" mode="Opaque" backcolor="#F0F8FF"> + <box> + <pen lineWidth="0.5" lineColor="#000000"/> + </box> + </style> + <style name="table_CH" mode="Opaque" backcolor="#BFE1FF"> + <box> + <pen lineWidth="0.5" lineColor="#000000"/> + </box> + </style> + <style name="table_TD" mode="Opaque" backcolor="#FFFFFF"> + <box> + <pen lineWidth="0.5" lineColor="#000000"/> + </box> + </style> + <style name="table 1"> + <box> + <pen lineWidth="1.0" lineColor="#000000"/> + </box> + </style> + <style name="table 1_TH" mode="Opaque" backcolor="#F0F8FF"> + <box> + <pen lineWidth="0.5" lineColor="#000000"/> + </box> + </style> + <style name="table 1_CH" mode="Opaque" backcolor="#BFE1FF"> + <box> + <pen lineWidth="0.5" lineColor="#000000"/> + </box> + </style> + <style name="table 1_TD" mode="Opaque" backcolor="#FFFFFF"> + <box> + <pen lineWidth="0.5" lineColor="#000000"/> + </box> + <conditionalStyle> + <conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression> + <style backcolor="#EFF7FF"/> + </conditionalStyle> + </style> + <subDataset name="Table Dataset 1" /> + <subDataset name="Table Dataset 2" /> + <queryString> + <![CDATA[select p.name, u.login from res_partner p, res_users u where p.id= u.partner_id]]> + </queryString> + <field name="name" class="java.lang.String"/> + <field name="login" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <title> + <band height="79" splitType="Stretch"> + <staticText> + <reportElement x="0" y="0" width="555" height="79" /> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="30" isBold="true"/> + </textElement> + <text><![CDATA[User Report]]></text> + </staticText> + </band> + </title> + <pageHeader> + <band height="35" splitType="Stretch"/> + </pageHeader> + <columnHeader> + <band height="41" splitType="Stretch"> + <staticText> + <reportElement x="0" y="0" width="372" height="41" /> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="26" isBold="true"/> + </textElement> + <text><![CDATA[User Name]]></text> + </staticText> + <staticText> + <reportElement x="372" y="0" width="183" height="41" /> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="24" isBold="true"/> + </textElement> + <text><![CDATA[Login]]></text> + </staticText> + </band> + </columnHeader> + <detail> + <band height="27" splitType="Stretch"> + <textField> + <reportElement x="0" y="0" width="372" height="25" /> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="15"/> + </textElement> + <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="372" y="0" width="183" height="25" /> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="15"/> + </textElement> + <textFieldExpression><![CDATA[$F{login}]]></textFieldExpression> + </textField> + </band> + </detail> + <columnFooter> + <band height="45" splitType="Stretch"/> + </columnFooter> + <pageFooter> + <band height="54" splitType="Stretch"/> + </pageFooter> + <summary> + <band height="42" splitType="Stretch"/> + </summary> +</jasperReport> |
