From 22663d464b193627c86c0bf8c243bcf0857ef444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=81?= Date: Mon, 16 Nov 2020 09:29:32 +0300 Subject: [PATCH] Unexisting variables from custom namespaces return None value now. fixed #19 --- calculate/variables/datavars.py | 5 +++++ tests/variables/test_datavars.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/calculate/variables/datavars.py b/calculate/variables/datavars.py index a5988e7..aad4a93 100644 --- a/calculate/variables/datavars.py +++ b/calculate/variables/datavars.py @@ -812,6 +812,8 @@ class NamespaceNode: return variable.get_value().get_table() return variable.get_value() else: + if self.get_package_name() == "custom": + return None raise VariableNotFoundError("'{variable_name}' is not found in the" " namespace '{namespace_name}'".format( variable_name=name, @@ -824,6 +826,8 @@ class NamespaceNode: elif name in self.variables: return self.variables[name] else: + if self.get_package_name() == "custom": + return None raise VariableNotFoundError("'{variable_name}' is not found in the" " namespace '{namespace_name}'".format( variable_name=name, @@ -836,6 +840,7 @@ class NamespaceNode: return ''.format(self.get_fullname()) def __deepcopy__(self, memo): + '''Пространство имен не копируется даже при глубоком копировании.''' return self diff --git a/tests/variables/test_datavars.py b/tests/variables/test_datavars.py index d5972a6..03f10ab 100644 --- a/tests/variables/test_datavars.py +++ b/tests/variables/test_datavars.py @@ -1576,13 +1576,15 @@ id_2 = 1349''' Datavars(variables_path=os.path.join(TESTFILES_PATH, 'variables_13')) - def test_if_datavars_object_is_used_to_get_access_to_an_unexisting_variable__the_datavars_module_raises_the_VariableNot_Found_exception(self): + def test_if_datavars_object_is_used_to_get_access_to_an_unexisting_variable_from_a_not_custom_namespace_and_from_a_custom_namespace__the_datavars_module_raises_the_VariableNotFound_exception_in_the_first_case_and_returns_None_value_in_the_second_case(self): datavars = Datavars(variables_path=os.path.join(TESTFILES_PATH, 'variables_14')) with pytest.raises(VariableNotFoundError): datavars.level.variable + assert datavars.custom.variable is None + def test_if_some_template_processed_by_the_template_engine_tries_to_get_value_of_a_variable_that_does_not_exist__the_template_engine_raises_the_VariableNotFound_error(self): datavars = Datavars( variables_path=os.path.join(TESTFILES_PATH,