# -*- coding: utf-8 -*- from odoo.tests.common import TransactionCase from odoo import fields class TestHgIndex(TransactionCase): def setUp(self): super().setUp() self.code = self.env['hg.index.code'].create({'name': 'Код для теста'}) self.node = self.env['hg.node'].create({ 'name': 'Вершина для теста', 'res_model': 'hg.node', 'res_id': 1, }) self.index = self.env['hg.index'].create({ 'name': 'Тестовый показатель', 'internal_code_id': self.code.id, 'external_code': 'TEST-001', 'public': True, 'node_id': self.node.id, }) def test_create(self): self.assertEqual(self.index.name, 'Тестовый показатель') self.assertEqual(self.index.external_code, 'TEST-001') self.assertTrue(self.index.public) def test_current_value_no_values(self): self.assertEqual(self.index.current_value, 0) def test_current_value_with_past_value(self): self.env['hg.value'].create({ 'index_id': self.index.id, 'value_float_actual': 12345.0, 'value_float_plan': 15000.0, 'date_due': '2020-01-01', 'type': 'alone', }) self.index._compute_current_value() self.assertEqual(self.index.current_value, 12345.0) def test_current_value_picks_latest(self): self.env['hg.value'].create({ 'index_id': self.index.id, 'value_float_actual': 1000.0, 'date_due': '2020-01-01', 'type': 'alone', }) self.env['hg.value'].create({ 'index_id': self.index.id, 'value_float_actual': 9999.0, 'date_due': '2020-06-01', 'type': 'alone', }) self.index._compute_current_value() self.assertEqual(self.index.current_value, 9999.0) def test_current_value_ignores_future(self): self.env['hg.value'].create({ 'index_id': self.index.id, 'value_float_actual': 5000.0, 'date_due': '2099-01-01', 'type': 'alone', }) self.index._compute_current_value() self.assertEqual(self.index.current_value, 0) def test_calc_returns_true(self): self.assertTrue(self.index.calc())