Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC
This commit is contained in:
2
l10n_ru_doc/tests/__init__.py
Normal file
2
l10n_ru_doc/tests/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import test_ru_doc
|
||||
77
l10n_ru_doc/tests/test_ru_doc.py
Normal file
77
l10n_ru_doc/tests/test_ru_doc.py
Normal file
@ -0,0 +1,77 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Tests for l10n_ru_doc report generation.
|
||||
|
||||
Validates: Requirement 12.1
|
||||
"""
|
||||
from odoo.tests.common import TransactionCase
|
||||
from odoo.tests import tagged
|
||||
|
||||
|
||||
def _make_out_invoice(env):
|
||||
"""Create a minimal out_invoice account.move for report testing."""
|
||||
partner = env['res.partner'].search([('is_company', '=', True)], limit=1)
|
||||
if not partner:
|
||||
partner = env['res.partner'].create({'name': 'Test Partner RU', 'is_company': True})
|
||||
|
||||
journal = env['account.journal'].search(
|
||||
[('type', '=', 'sale'), ('company_id', '=', env.company.id)], limit=1
|
||||
)
|
||||
if not journal:
|
||||
journal = env['account.journal'].create({
|
||||
'name': 'Test Sales Journal',
|
||||
'type': 'sale',
|
||||
'code': 'TSALE',
|
||||
})
|
||||
|
||||
move = env['account.move'].create({
|
||||
'move_type': 'out_invoice',
|
||||
'partner_id': partner.id,
|
||||
'journal_id': journal.id,
|
||||
'invoice_date': '2024-01-15',
|
||||
})
|
||||
return move
|
||||
|
||||
|
||||
@tagged('post_install', '-at_install')
|
||||
class TestRuDoc(TransactionCase):
|
||||
"""
|
||||
Validates: Requirement 12.1 — ТОРГ-12 report generation for out_invoice
|
||||
returns non-empty binary content without exceptions.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.invoice = _make_out_invoice(self.env)
|
||||
|
||||
def test_torg12_report_values_no_exception(self):
|
||||
"""
|
||||
Req 12.1 — calling _get_report_values on the ТОРГ-12 report model
|
||||
for an out_invoice returns a non-empty dict without exceptions.
|
||||
"""
|
||||
report_model = self.env['report.l10n_ru_doc.report_bill']
|
||||
result = report_model._get_report_values([self.invoice.id])
|
||||
self.assertIsInstance(result, dict, "Report values should be a dict")
|
||||
self.assertIn('docs', result, "Report values should contain 'docs' key")
|
||||
self.assertTrue(result['docs'], "Report docs should be non-empty")
|
||||
|
||||
def test_torg12_html_render_returns_binary_content(self):
|
||||
"""
|
||||
Req 12.1 — rendering the ТОРГ-12 QWeb template for an out_invoice
|
||||
returns non-empty binary content without exceptions.
|
||||
"""
|
||||
html_content, content_type = self.env['ir.actions.report']._render_qweb_html(
|
||||
'l10n_ru_doc.report_bill', [self.invoice.id]
|
||||
)
|
||||
self.assertTrue(html_content, "ТОРГ-12 HTML render should return non-empty binary content")
|
||||
self.assertIsInstance(html_content, bytes, "Rendered content should be bytes")
|
||||
self.assertGreater(len(html_content), 0, "Rendered content should have non-zero length")
|
||||
|
||||
def test_torg12_report_values_contains_helper(self):
|
||||
"""
|
||||
Req 12.1 — report values include the QWebHelper instance for formatting.
|
||||
"""
|
||||
report_model = self.env['report.l10n_ru_doc.report_bill']
|
||||
result = report_model._get_report_values([self.invoice.id])
|
||||
self.assertIn('helper', result, "Report values should contain 'helper' key")
|
||||
self.assertIsNotNone(result['helper'], "Helper should not be None")
|
||||
Reference in New Issue
Block a user