Files
enterprise-addons/esg/tests/test_esg_source.py
T

66 lines
2.4 KiB
Python

from odoo.exceptions import UserError
from odoo.addons.esg.tests.esg_common import TestEsgCommon
from odoo.tests import Form
class TestEsgSource(TestEsgCommon):
def test_emission_source_flows(self):
source_1 = self.env['esg.emission.source'].create({
'name': 'Source 1',
'scope': 'direct',
})
source_2 = self.env['esg.emission.source'].create({
'name': 'Source 2',
'scope': 'direct',
'parent_id': source_1.id,
})
source_3 = self.env['esg.emission.source'].create({
'name': 'Source 3',
'scope': 'direct',
'parent_id': source_2.id,
})
source_4 = self.env['esg.emission.source'].create({
'name': 'Source 4',
'parent_id': source_3.id,
})
# Test cyclic dependencies
with self.assertRaises(UserError, msg='You cannot create a cyclic hierarchy of emission sources.'):
source_1.parent_id = source_3
# Test scope assignation
self.assertEqual(source_4.scope, source_1.scope, 'Scope should be inherited from parent')
# Test scope level
self.assertEqual(source_4.level, 4)
# Test activity flow
self.assertEqual(source_4.activity_flow, 'company_reporting')
# Test complete name
self.assertEqual(source_4.complete_name, 'Scope 1: Direct > Source 1 > Source 2 > Source 3 > Source 4')
def test_remove_parent_emission_source(self):
EmissionSource = self.env['esg.emission.source']
parent_source = EmissionSource.create({
'name': 'Source 1',
'scope': 'direct',
})
child_source = EmissionSource.create({
'name': 'Source 2',
'parent_id': parent_source.id,
})
with Form(child_source) as child_source_form:
child_source_form.parent_id = EmissionSource
self.assertFalse(child_source.parent_id)
self.assertEqual(child_source.scope, 'direct', "Scope should remain 'direct' even after unsetting the parent.")
def test_remove_scope_on_emission_source(self):
"""Test that removing the scope from the emission source."""
source = self.emission_source_direct
source.scope = False
self.assertFalse(source.activity_flow_direct_indirect)
self.assertFalse(source.activity_flow)