Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC
This commit is contained in:
3
mklab_base_indicators_report/tests/__init__.py
Normal file
3
mklab_base_indicators_report/tests/__init__.py
Normal file
@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import test_report_wizard
|
||||
71
mklab_base_indicators_report/tests/test_report_wizard.py
Normal file
71
mklab_base_indicators_report/tests/test_report_wizard.py
Normal file
@ -0,0 +1,71 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from unittest.mock import patch
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestReportWizard(TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.node = self.env['hg.node'].create({
|
||||
'name': 'Узел отчёта',
|
||||
'res_model': 'hg.node',
|
||||
'res_id': 1,
|
||||
})
|
||||
self.index = self.env['hg.index'].create({
|
||||
'name': 'Показатель отчёта',
|
||||
'node_id': self.node.id,
|
||||
})
|
||||
|
||||
def test_wizard_create(self):
|
||||
wizard = self.env['node_report_wizard'].create({'index_id': self.index.id})
|
||||
self.assertEqual(wizard.index_id, self.index)
|
||||
|
||||
def test_action_generate_report_returns_url_action(self):
|
||||
wizard = self.env['node_report_wizard'].create({'index_id': self.index.id})
|
||||
action = wizard.action_generate_report()
|
||||
self.assertEqual(action['type'], 'ir.actions.act_url')
|
||||
self.assertIn(str(self.index.id), action['url'])
|
||||
self.assertEqual(action['target'], 'new')
|
||||
|
||||
def test_action_url_contains_base_url(self):
|
||||
base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
|
||||
wizard = self.env['node_report_wizard'].create({'index_id': self.index.id})
|
||||
action = wizard.action_generate_report()
|
||||
self.assertIn(base_url, action['url'])
|
||||
|
||||
|
||||
class TestHgIndexGraphImage(TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.node_src = self.env['hg.node'].create({
|
||||
'name': 'Источник графа',
|
||||
'res_model': 'hg.node',
|
||||
'res_id': 1,
|
||||
})
|
||||
self.node_tgt = self.env['hg.node'].create({
|
||||
'name': 'Приёмник графа',
|
||||
'res_model': 'hg.node',
|
||||
'res_id': 2,
|
||||
})
|
||||
self.code = self.env['hg.index.code'].create({'name': 'Код графа'})
|
||||
self.index = self.env['hg.index'].create({
|
||||
'name': 'Показатель графа',
|
||||
'node_id': self.node_src.id,
|
||||
'internal_code_id': self.code.id,
|
||||
})
|
||||
self.env['hg.link'].create({
|
||||
'name': 'Связь графа',
|
||||
'source_id': self.node_src.id,
|
||||
'target_ids': [(4, self.node_tgt.id)],
|
||||
})
|
||||
|
||||
def test_generate_graph_image_returns_base64(self):
|
||||
# networkx и matplotlib могут отсутствовать в тестовой среде — мокируем
|
||||
fake_b64 = 'aW1hZ2VkYXRh'
|
||||
with patch.object(
|
||||
type(self.index), 'generate_graph_image', return_value=fake_b64
|
||||
):
|
||||
result = self.index.generate_graph_image()
|
||||
self.assertEqual(result, fake_b64)
|
||||
Reference in New Issue
Block a user