'save' tag works nice in templates now. fixed #60

master
Иванов Денис 3 years ago
parent e52562d42d
commit d45688ffd0

@ -378,8 +378,7 @@ class ParametersProcessor:
atom_object = self.package_atom_parser.\
parse_package_parameter(package_name)
packages_list.append(atom_object)
except PackageAtomError as error:
print("NOT FOUND", str(error))
except PackageAtomError:
continue
return packages_list
@ -1275,7 +1274,10 @@ class CalculateExtension(Extension):
new_value, target_file)
return ''
def _find_value_container(self, variable, vars_package, modify_only=True):
def _find_value_container(self, variable: List[str],
vars_package: NamespaceNode,
modify_only: bool = True
) -> Union[NamespaceNode]:
'''Метод для поиска контейнера, путь к которому указан в аргументе.
Этим контейнером может быть пространство имен или хэш.'''
current_container = vars_package
@ -1299,6 +1301,7 @@ class CalculateExtension(Extension):
elif not modify_only:
new_namespace = NamespaceNode(section)
current_container.add_namespace(new_namespace)
current_container = new_namespace
else:
raise SaveError("can not save variable '{}'. Namespace '{}'"
" is not found in '{}'".format(

@ -1632,6 +1632,32 @@ os.linux.test_3 = {{ os.linux.test_3 }}
assert datavars_1.os.linux.test == 'new_first'
assert datavars_2.os.linux.test == 'new_second'
def test_adding_some_custom_variables(self):
datavars = Datavars(
variables_path=os.path.join(TESTFILES_PATH, 'variables_7'))
template_engine = TemplateEngine(appends_set=APPENDS_SET,
chroot_path=TESTFILES_PATH,
datavars_module=datavars)
input_template_1 = '''{% calculate run='/bin/bash' -%}
{% save custom.qwerty = 'www-firefox,www-chromium' -%}
{% save custom.zxcv2.qwerty = 'www-firefox,www-chromium2' -%}
{% save custom.zxcv2.qwerty2 = 'www-firefox,www-chromium' -%}
echo {{ custom.qwerty }}
echo {{ custom.zxcv2.qwerty }}
echo {{ custom.zxcv2.qwerty2 }}
exit 0
'''
expected_output = '''echo www-firefox,www-chromium
echo www-firefox,www-chromium2
echo www-firefox,www-chromium
exit 0'''
template_engine.process_template_from_string(input_template_1, FILE)
result = template_engine.template_text
assert result == expected_output
def test_for_removing_testfiles(self):
shutil.rmtree(os.path.join(TESTFILES_PATH, 'gentoo'))
assert not os.path.exists(os.path.join(TESTFILES_PATH, 'gentoo'))

Loading…
Cancel
Save