summaryrefslogtreecommitdiff
path: root/jasper_reports/tests
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-09-13 12:05:33 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-09-13 12:05:33 +0700
commit8f3d096dbae18bacd95796d03b17d4d94a806c85 (patch)
treeae90032724dabe417b907db43145639e6df9565f /jasper_reports/tests
parent0d87fec0c4c6fb573b1a09076f6d50844d8d0a80 (diff)
jasper report integration
Diffstat (limited to 'jasper_reports/tests')
-rwxr-xr-xjasper_reports/tests/__init__.py2
-rwxr-xr-xjasper_reports/tests/test_jasper_report.py56
-rwxr-xr-xjasper_reports/tests/user.jrxml119
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>