71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
# -*- 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())
|