You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-4-lib/tests/vars/test_alt_vars.py

54 lines
2.6 KiB

import pytest
from calculate.vars.alt_datavars import NamespaceNode, VariableNode
@pytest.mark.alt_vars
class TestNamespace:
# Сначала тестируем классы и методы необходимые для построения дерева
# переменных и пространств имен.
def test_if_NamespaceNode_just_initialized_with_its_name__the_NamespaceNode_object_contains_empty_namespaces_and_variables_dictionaries_and_fullname_method_returns_only_the_namespace_s_name(self):
namespace_1 = NamespaceNode('namespace_1')
assert namespace_1.namespaces == dict()
assert namespace_1.variables == dict()
assert namespace_1.fullname == 'namespace_1'
def test_if_namespace_node_added_in_an_other_namespace_node__a_parent_namespace_node_contains_child_namespace_in_its_namespaces_dictionary_and_child_namespace_object_has_parent_namespace_in_its_parent_attribute_and_its_fullname_method_returns_names_of_both_namespaces(self):
namespace_1 = NamespaceNode('namespace_1')
namespace_2 = NamespaceNode('namespace_2')
namespace_1.add_namespace(namespace_2)
assert namespace_1.namespaces == {'namespace_2': namespace_2}
assert namespace_1.variables == dict()
assert namespace_1.fullname == 'namespace_1'
assert namespace_2.namespaces == dict()
assert namespace_2.variables == dict()
assert namespace_2.parent == namespace_1
assert namespace_2.fullname == 'namespace_1.namespace_2'
def test_if_two_VariableNode_objects_are_initialized_and_added_to_a_namespace__the_NamespaceNode_object_contains_this_variables_and_can_be_used_to_get_variables_values_and_variables_have_namespace_name_in_their_fullnames(self):
namespace_1 = NamespaceNode('namespace_1')
variable_1 = VariableNode('var_1', namespace_1)
variable_1.update_value(value='value_1')
variable_2 = VariableNode('var_2', namespace_1)
variable_2.update_value(value='value_2')
namespace_1.add_variable(variable_1)
namespace_1.add_variable(variable_2)
assert namespace_1.namespaces == dict()
assert namespace_1.variables == {'var_1': variable_1,
'var_2': variable_2}
assert namespace_1.fullname == 'namespace_1'
assert namespace_1.var_1 == 'value_1'
assert namespace_1.var_2 == 'value_2'
assert namespace_1.get_variable_node('var_1').fullname ==\
'namespace_1.var_1'
assert namespace_1.get_variable_node('var_2').fullname ==\
'namespace_1.var_2'
def test_updating_variable_using_set_function(self):
pass