diff --git a/calculate/templates/format/base_format.py b/calculate/templates/format/base_format.py
index 97415dd..c858056 100644
--- a/calculate/templates/format/base_format.py
+++ b/calculate/templates/format/base_format.py
@@ -110,8 +110,10 @@ class BaseFormat():
выполняемого рекурсивно.'''
if template == OrderedDict():
return
+
if join_before:
forwarded_items = OrderedDict()
+
for key_value in template:
if key_value[0] == '!':
# Удаление соответствующего элемента из original.
@@ -131,6 +133,9 @@ class BaseFormat():
item_to_replace = ('',) + key_value[1:]
elif isinstance(key_value, str):
item_to_replace = key_value[1:]
+ else:
+ # Сюда надо вставить исключение.
+ pass
# Если соответствующего элемента нет в оригинале -- пропускаем.
if item_to_replace not in original.keys():
@@ -210,6 +215,9 @@ class BaseFormat():
self._join_before_in_areas)
else:
if self._comments_processing:
+ # Я пока еще не понял почему, но должно быть так:
+ if not original[key_value] and not template[key_value]:
+ continue
original[key_value][-1] = template[key_value][-1]
else:
original[key_value] = template[key_value]
diff --git a/calculate/templates/format/contents_format.py b/calculate/templates/format/contents_format.py
index 281935e..4cecc41 100644
--- a/calculate/templates/format/contents_format.py
+++ b/calculate/templates/format/contents_format.py
@@ -47,7 +47,8 @@ class ContentsFormat(BaseFormat):
if not self._initialized:
self._initialize_parser()
- if add_header and not ignore_comments and template_parser:
+ if (add_header and not ignore_comments and template_parser
+ and template_path is not None):
self.header, document_text = self._get_header_and_document_text(
document_text,
template_path,
diff --git a/calculate/templates/format/ldap_format.py b/calculate/templates/format/ldap_format.py
index cdecd75..308dd28 100644
--- a/calculate/templates/format/ldap_format.py
+++ b/calculate/templates/format/ldap_format.py
@@ -513,6 +513,7 @@ class LDAPFormat(BaseFormat):
try:
parsing_result = self._comment_line.parseString(line)
self._match = True
+ print('comment is found')
if not self._ignore_comments:
# До того, как первый элемент встречен -- все комментарии
diff --git a/calculate/templates/template_engine.py b/calculate/templates/template_engine.py
index 344c9e1..9536449 100644
--- a/calculate/templates/template_engine.py
+++ b/calculate/templates/template_engine.py
@@ -841,14 +841,13 @@ class CalculateExtension(Extension):
check_template.render(__datavars__=self._datavars)
elif (self.stream.current.type == 'name'
- or self.stream.current.type == 'lparen'):
+ or self.stream.current.type == 'lparen'
+ or self.stream.current.type == 'integer'):
# разбираем условие. Если условие False -- кидаем исключение.
condition_result = self.get_condition_result()
if not condition_result:
- raise ConditionFailed(
- 'Condition is failed',
- lineno=self.stream.current.lineno
- )
+ raise ConditionFailed('Condition is failed',
+ lineno=self.stream.current.lineno)
else:
raise TemplateSyntaxError('Name is expected in calculate tag.',
lineno=self.stream.current.lineno)
diff --git a/calculate/templates/template_processor.py b/calculate/templates/template_processor.py
index 7faedc5..b8389cc 100644
--- a/calculate/templates/template_processor.py
+++ b/calculate/templates/template_processor.py
@@ -337,11 +337,9 @@ class TemplateWrapper:
parameter_package = None
if self.target_type is not None:
- print('looking for package for file: {}'.format(self.target_path))
try:
file_package = self.package_atom_parser.get_file_package(
self.target_path)
- print('package is found: {}'.format(file_package))
except PackageNotFound:
file_package = None
self.target_without_package = True
@@ -579,7 +577,6 @@ class TemplateWrapper:
def save_changes(self):
'''Метод для сохранения изменений внесенных в CONTENTS.'''
if self.target_package:
- print('SAVING TO CONTENTS: {}'.format(self.target_package))
self.target_package.remove_empty_directories()
self.target_package.write_contents_file()
@@ -1239,14 +1236,15 @@ class TemplateExecutor:
text_to_run = template_object.template_text
interpreter = template_object.parameters.run
- if not os.path.exists(template_object.target_path):
+ if template_object.template_type == FILE:
+ cwd_path = os.path.dirname(template_object.target_path)
+ else:
+ cwd_path = template_object.target_path
+
+ if not os.path.exists(cwd_path):
raise TemplateExecutorError(("can not run template, directory from"
" target path does not exist: {}").
format(template_object.target_path))
- elif os.path.isdir(template_object.target_path):
- cwd_path = template_object.target_path
- else:
- cwd_path = os.path.dirname(template_object.target_path)
try:
run_process = Process(interpreter, cwd=cwd_path)
@@ -1274,15 +1272,18 @@ class TemplateExecutor:
text_to_run = template_object.template_text
interpreter = template_object.parameters.exec
- if not os.path.exists(template_object.target_path):
- raise TemplateExecutorError(
- ("can not exec template, directory from"
- " target path does not exist: {}").
- format(template_object.target_path))
- elif os.path.isdir(template_object.target_path):
- cwd_path = template_object.target_path
- else:
+ if template_object.template_type == FILE:
cwd_path = os.path.dirname(template_object.target_path)
+ else:
+ cwd_path = template_object.target_path
+
+ if not os.path.exists(cwd_path):
+ raise TemplateExecutorError(("can not run template, directory from"
+ " target path does not exist: {}").
+ format(template_object.target_path))
+ print('CWD_PATH = {}'.format(cwd_path))
+ print('TEMPLATE TEXT:')
+ print(text_to_run)
# Получаем путь к директории для хранения файлов .execute.
if (self.chroot_path != '/' and not
@@ -1295,12 +1296,14 @@ class TemplateExecutor:
# exec по номеру последнего.
exec_number = 0
if not self.execute_files:
+ print('FROM DIR')
if os.path.exists(self.execute_archive_path):
exec_files_list = os.listdir(self.execute_archive_path)
if exec_files_list:
exec_number = int(exec_files_list[-1][-4:])
exec_number = str(exec_number + 1)
else:
+ print('FROM LIST')
exec_number = str(len(self.execute_files) + 1)
# Получаем название нового exec_???? файла.
@@ -1309,15 +1312,18 @@ class TemplateExecutor:
exec_file_name = 'exec_{}'.format(exec_number)
exec_file_path = join_paths(self.execute_archive_path,
exec_file_name)
+ print('EXEC_FILE_PATH = {}\n'.format(exec_file_path))
exec_file = write_file(exec_file_path)
exec_file.write(text_to_run)
exec_file.close()
self.execute_files[exec_file_path] = {'interpreter': interpreter,
- 'cwd_path': cwd_path}
+ 'cwd_path': cwd_path,
+ 'template_path':
+ template_object.template_path}
- def execute_file(self, cwd_path, interpreter, exec_path):
+ def execute_file(self, interpreter, exec_path, cwd_path):
"""Метод для выполнения скриптов сохраненных в результате обработки
шаблонов с параметром exec. Скрипт всегда удаляется вне зависимости
от успешности его выполнения."""
@@ -1694,6 +1700,11 @@ class DirectoryProcessor:
# Режим заполнения очередей директорий пакетов, необходимых для более
# быстрой обработки параметра merge.
self.fill_trees = bool(self.for_package)
+ if self.for_package:
+ package = Package(self.for_package,
+ chroot_path=self.cl_chroot_path)
+ else:
+ package = None
for directory_path in self.template_paths:
self.base_directory = directory_path.strip()
@@ -1704,7 +1715,8 @@ class DirectoryProcessor:
self._walk_directory_tree(node.path,
self.cl_chroot_path,
ParametersContainer(),
- directory_tree=self.directory_tree)
+ directory_tree=self.directory_tree,
+ package=package)
# Теперь когда дерево заполнено, можно выключить этот режим.
self.fill_trees = False
@@ -1714,6 +1726,9 @@ class DirectoryProcessor:
self.processed_packages.append(self.for_package)
self._merge_packages()
+ if self.template_executor.execute_files:
+ self._run_exec_files()
+
def _merge_packages(self):
'''Метод для выполнения шаблонов относящихся к пакетам, указанным во
всех встреченных значениях параметра merge.'''
@@ -1730,6 +1745,9 @@ class DirectoryProcessor:
not_merged_packages.append(self.for_package)
continue
+ package = Package(self.for_package,
+ chroot_path=self.cl_chroot_path)
+
for directory_name in self.packages_file_trees[self.for_package]:
directory_tree = self.packages_file_trees[self.for_package].\
get_directory_tree(directory_name)
@@ -1737,7 +1755,8 @@ class DirectoryProcessor:
self._walk_directory_tree(directory_tree.base_directory,
self.cl_chroot_path,
ParametersContainer(),
- directory_tree=directory_tree)
+ directory_tree=directory_tree,
+ package=package)
self.processed_packages.append(self.for_package)
@@ -1747,6 +1766,29 @@ class DirectoryProcessor:
else:
self.output.set_success('All packages are merged...')
+ def _run_exec_files(self):
+ '''Метод для выполнения скриптов, полученных в результате обработки
+ шаблонов с параметром exec.'''
+ for exec_file_path, exec_info in\
+ self.template_executor.execute_files.items():
+ try:
+ output = self.template_executor.execute_file(
+ exec_info['interpreter'],
+ exec_file_path,
+ exec_info['cwd_path'])
+
+ if output['stdout'] is not None:
+ self.output.set_info("stdout from template: {}:\n{}\n".
+ format(exec_info['template_path'],
+ output['stdout']))
+
+ if output['stderr'] is not None:
+ self.output.set_error("stderr from template: {}:\n{}\n".
+ format(exec_info['template_path'],
+ output['stderr']))
+ except TemplateExecutorError as error:
+ self.output.set_error(str(error))
+
def _get_directories_queue(self, path):
'''Уже не актуальный метод для построение очередей из путей к
шаблонам. Хотя возможно еще пригодится.'''
@@ -1765,7 +1807,8 @@ class DirectoryProcessor:
return base_directory, directories_queue
def _walk_directory_tree(self, current_directory_path, current_target_path,
- directory_parameters, directory_tree={}):
+ directory_parameters, directory_tree={},
+ package=None):
'''Метод для рекурсивного обхода директорий с шаблонами, а также, при
необходимости, заполнения деревьев директорий шаблонов, с помощью
которых далее выполняются шаблоны пакетов из merge.'''
@@ -1821,6 +1864,14 @@ class DirectoryProcessor:
if self.for_package and directory_parameters.merge:
self.packages_to_merge.extend(directory_parameters.merge)
+ # Если присутствует параметр package -- проверяем, изменился ли он
+ # и был ли задан до этого. Если не был задан или изменился, меняем
+ # текущий пакет ветки шаблонов на этот.
+ if directory_parameters.package:
+ if (package is None or
+ package.package_name != directory_parameters.package):
+ package = Package(directory_parameters.package,
+ chroot_path=self.cl_chroot_path)
else:
# Если .calculate_directory отсутствует -- создаем директорию,
# используя унаследованные параметры и имя самой директории.
@@ -1841,13 +1892,17 @@ class DirectoryProcessor:
# Для того чтобы директория была создана, просто добавляем параметр
# append = join.
directory_parameters.set_parameter({'append': 'join'})
+ template_text = ''
current_target_path = os.path.join(current_target_path,
directory_name)
# Выполняем наложение шаблона.
- current_target_path = self._execute_template(current_target_path,
- directory_parameters, DIR,
- current_directory_path)
+ current_target_path = self._execute_template(
+ current_target_path,
+ directory_parameters, DIR,
+ current_directory_path,
+ template_text=template_text,
+ package=package)
if not current_target_path:
directory_tree = {}
return
@@ -1899,12 +1954,21 @@ class DirectoryProcessor:
template_name,
template_parameters)
+ # Создаем объект пакета для файлов шаблонов этой директории.
+ template_package = package
+ if template_parameters.package:
+ if (template_package is None or
+ package.package_name != directory_parameters.package):
+ template_package = Package(directory_parameters.package,
+ chroot_path=self.cl_chroot_path)
+
# Выполняем действия, указанные в шаблоне.
target_file_path = self._execute_template(
target_file_path,
template_parameters,
FILE, template_path,
- template_text=template_text)
+ template_text=template_text,
+ package=template_package)
if not target_file_path:
continue
@@ -1924,7 +1988,8 @@ class DirectoryProcessor:
self._walk_directory_tree(
directory, current_target_path,
directory_parameters.get_inheritables(),
- directory_tree=directory_tree[directory_name])
+ directory_tree=directory_tree[directory_name],
+ package=package)
directory_tree[directory_name] = {}
else:
if isinstance(directory, DirectoryTree):
@@ -1937,7 +2002,8 @@ class DirectoryProcessor:
self._walk_directory_tree(
directory_path,
current_target_path,
- directory_parameters.get_inheritables())
+ directory_parameters.get_inheritables(),
+ package=package)
if self.fill_trees:
directory_tree = {}
@@ -2044,7 +2110,8 @@ class DirectoryProcessor:
parameters,
template_type,
template_path,
- template_text=''):
+ template_text='',
+ package=None):
'''Метод для наложения шаблонов и обработки информации полученной после
наложения.'''
try:
@@ -2053,7 +2120,8 @@ class DirectoryProcessor:
parameters,
template_type,
template_path,
- template_text=template_text)
+ template_text=template_text,
+ target_package=package)
# Если во время выполнения шаблона был изменен целевой путь,
# например, из-за ссылки на директорию в source -- обновляем
# целевой путь.
diff --git a/calculate/utils/package.py b/calculate/utils/package.py
index a6b4cd6..05a673c 100644
--- a/calculate/utils/package.py
+++ b/calculate/utils/package.py
@@ -620,6 +620,7 @@ class Package:
if contents_text:
contents_format = ContentsFormat(contents_text,
+ None,
template_parser=False)
self.contents_dictionary = contents_format._document_dictionary
return True
@@ -635,7 +636,7 @@ class Package:
def render_contents_file(self):
'''Метод для получения текста файла CONTENTS.'''
- contents_format = ContentsFormat('', template_parser=False)
+ contents_format = ContentsFormat('', None, template_parser=False)
contents_format._document_dictionary = self.contents_dictionary
return contents_format.document_text
diff --git a/tests/templates/format/test_ldap.py b/tests/templates/format/test_ldap.py
index 337ad7b..ffb5b66 100644
--- a/tests/templates/format/test_ldap.py
+++ b/tests/templates/format/test_ldap.py
@@ -377,3 +377,133 @@ database bdb
result_text = result_file.read()
assert ldap_original_object.document_text == result_text
+
+ def test_if_input_documents_are_an_original_document_without_calculate_header_and_a_template_and_the_add_header_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''
+include /etc/openldap/schema/mail.schema
+
+loglevel 0
+allow bind_v2
+modulepath /usr/lib/openldap/openldap
+
+database bdb
+
+checkpoint 1024 5
+suffix "dc=calculate"
+'''
+
+ template_text = '''
+!include /etc/openldap/schema/mail.schema
+database bdb
+!suffix "dc=calculate"
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+loglevel 0
+allow bind_v2
+modulepath /usr/lib/openldap/openldap
+
+database bdb
+checkpoint 1024 5
+
+'''
+
+ original_object = LDAPFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = LDAPFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_not_set__the_format_object_removes_calculate_header_from_original_document__joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+include /etc/openldap/schema/mail.schema
+
+loglevel 0
+allow bind_v2
+modulepath /usr/lib/openldap/openldap
+
+database bdb
+
+checkpoint 1024 5
+suffix "dc=calculate"
+'''
+
+ template_text = '''
+!include /etc/openldap/schema/mail.schema
+database bdb
+!suffix "dc=calculate"
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+loglevel 0
+allow bind_v2
+modulepath /usr/lib/openldap/openldap
+
+database bdb
+checkpoint 1024 5
+
+'''
+
+ original_object = LDAPFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = LDAPFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header_with_a_template_paths_from_the_old_header_and_paths_to_a_current_template(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+include /etc/openldap/schema/mail.schema
+
+loglevel 0
+allow bind_v2
+modulepath /usr/lib/openldap/openldap
+
+database bdb
+
+checkpoint 1024 5
+suffix "dc=calculate"
+'''
+
+ template_text = '''
+!include /etc/openldap/schema/mail.schema
+database bdb
+!suffix "dc=calculate"
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+# /path/to/template
+#-------------------------------------------------------------------------------
+loglevel 0
+allow bind_v2
+modulepath /usr/lib/openldap/openldap
+
+database bdb
+checkpoint 1024 5
+
+'''
+
+ original_object = LDAPFormat(original_text, '/path/to/template',
+ add_header=True, already_changed=True)
+ template_object = LDAPFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ print(original_object.document_text)
+ assert original_object.document_text == join_result
diff --git a/tests/templates/format/test_openrc.py b/tests/templates/format/test_openrc.py
index 34211dc..38205cb 100644
--- a/tests/templates/format/test_openrc.py
+++ b/tests/templates/format/test_openrc.py
@@ -201,3 +201,108 @@ rc_send_sighup="YES"
template = document_1_object.make_template(document_2_object)
document_1_object.join_template(template)
assert document_1_object.document_text == document_2
+
+ def test_if_input_documents_are_an_original_document_without_calculate_header_and_a_template_and_the_add_header_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''
+# If you have multiple slapd instances per #376699, this will provide a default config
+rc_interactive="NO"
+INSTANCE="openldap${SVCNAME#slapd}"
+# Comment1
+# Comment2
+OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"
+'''
+
+ template_text = '''
+!OPTS_CONF
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+# If you have multiple slapd instances per #376699, this will provide a default config
+rc_interactive="NO"
+
+instance="openldap${SVCNAME#slapd}"
+
+'''
+
+ original_object = OpenRCFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = OpenRCFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_not_set__the_format_object_removes_calculate_header_from_original_document__joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+# If you have multiple slapd instances per #376699, this will provide a default config
+rc_interactive="NO"
+INSTANCE="openldap${SVCNAME#slapd}"
+# Comment1
+# Comment2
+OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"
+'''
+
+ template_text = '''
+!OPTS_CONF
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+# If you have multiple slapd instances per #376699, this will provide a default config
+rc_interactive="NO"
+
+instance="openldap${SVCNAME#slapd}"
+
+'''
+
+ original_object = OpenRCFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = OpenRCFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header_with_a_template_paths_from_the_old_header_and_paths_to_a_current_template(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+# If you have multiple slapd instances per #376699, this will provide a default config
+rc_interactive="NO"
+INSTANCE="openldap${SVCNAME#slapd}"
+# Comment1
+# Comment2
+OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"
+'''
+
+ template_text = '''
+!OPTS_CONF
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+# /path/to/template
+#-------------------------------------------------------------------------------
+# If you have multiple slapd instances per #376699, this will provide a default config
+rc_interactive="NO"
+
+instance="openldap${SVCNAME#slapd}"
+
+'''
+
+ original_object = OpenRCFormat(original_text, '/path/to/template',
+ add_header=True, already_changed=True)
+ template_object = OpenRCFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
diff --git a/tests/templates/format/test_postfix.py b/tests/templates/format/test_postfix.py
index ad98957..72d9c36 100644
--- a/tests/templates/format/test_postfix.py
+++ b/tests/templates/format/test_postfix.py
@@ -181,3 +181,117 @@ mail_owner = postfix
template = document_1_object.make_template(document_2_object)
document_1_object.join_template(template)
assert document_1_object.document_text == document_2
+
+ def test_if_input_documents_are_an_original_document_without_calculate_header_and_a_template_and_the_add_header_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''
+# Comment1
+parameter_name = /home/divanov/Home
+
+# Comment2
+# Comment3
+other_parameter = yes
+smtp_tls_note_starttls_offer = yes
+tls_random_source = dev:/dev/urandom
+'''
+
+ template_text = '''
+!other_parameter
+!tls_random_source
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+# Comment1
+parameter_name = /home/divanov/Home
+
+smtp_tls_note_starttls_offer = yes
+
+'''
+
+ original_object = PostfixFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = PostfixFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_not_set__the_format_object_removes_calculate_header_from_original_document__joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+# Comment1
+parameter_name = /home/divanov/Home
+
+# Comment2
+# Comment3
+other_parameter = yes
+smtp_tls_note_starttls_offer = yes
+tls_random_source = dev:/dev/urandom
+'''
+
+ template_text = '''
+!other_parameter
+!tls_random_source
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+# Comment1
+parameter_name = /home/divanov/Home
+
+smtp_tls_note_starttls_offer = yes
+
+'''
+
+ original_object = PostfixFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = PostfixFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header_with_a_template_paths_from_the_old_header_and_paths_to_a_current_template(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+# Comment1
+parameter_name = /home/divanov/Home
+
+# Comment2
+# Comment3
+other_parameter = yes
+smtp_tls_note_starttls_offer = yes
+tls_random_source = dev:/dev/urandom
+'''
+
+ template_text = '''
+!other_parameter
+!tls_random_source
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+# /path/to/template
+#-------------------------------------------------------------------------------
+# Comment1
+parameter_name = /home/divanov/Home
+
+smtp_tls_note_starttls_offer = yes
+
+'''
+
+ original_object = PostfixFormat(original_text, '/path/to/template',
+ add_header=True, already_changed=True)
+ template_object = PostfixFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
diff --git a/tests/templates/format/test_procmail.py b/tests/templates/format/test_procmail.py
index 6ca7ca6..97a0991 100644
--- a/tests/templates/format/test_procmail.py
+++ b/tests/templates/format/test_procmail.py
@@ -166,3 +166,96 @@ net.ipv4.icmp_echo_ignore_broadcasts=1
template = document_1_object.make_template(document_2_object)
document_1_object.join_template(template)
assert document_1_object.document_text == document_2
+
+ def test_if_input_documents_are_an_original_document_without_calculate_header_and_a_template_and_the_add_header_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''
+net.ipv4.ip_forward = 0
+parameter_name = /home/divanov/Home
+other_parameter = yes
+'''
+
+ template_text = '''
+!parameter_name = /home/divanov/Home
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+net.ipv4.ip_forward=0
+
+other_parameter=yes
+
+'''
+
+ original_object = ProcmailFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = ProcmailFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_not_set__the_format_object_removes_calculate_header_from_original_document__joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+net.ipv4.ip_forward = 0
+parameter_name = /home/divanov/Home
+other_parameter = yes
+'''
+
+ template_text = '''
+!parameter_name = /home/divanov/Home
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+net.ipv4.ip_forward=0
+
+other_parameter=yes
+
+'''
+
+ original_object = ProcmailFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = ProcmailFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header_with_a_template_paths_from_the_old_header_and_paths_to_a_current_template(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+net.ipv4.ip_forward = 0
+parameter_name = /home/divanov/Home
+other_parameter = yes
+'''
+
+ template_text = '''
+!parameter_name = /home/divanov/Home
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+# /path/to/template
+#-------------------------------------------------------------------------------
+net.ipv4.ip_forward=0
+
+other_parameter=yes
+
+'''
+
+ original_object = ProcmailFormat(original_text, '/path/to/template',
+ add_header=True, already_changed=True)
+ template_object = ProcmailFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
diff --git a/tests/templates/format/test_proftpd.py b/tests/templates/format/test_proftpd.py
index 6250e12..40905d9 100644
--- a/tests/templates/format/test_proftpd.py
+++ b/tests/templates/format/test_proftpd.py
@@ -1,6 +1,7 @@
import pytest
from collections import OrderedDict
from calculate.templates.format.proftpd_format import ProFTPDFormat
+from pprint import pprint
@pytest.mark.proftpd
@@ -239,3 +240,166 @@ class TestParsingMethods:
result_text = result_file.read()
assert proftpd_original_object.document_text == result_text
+
+ def test_if_input_documents_are_an_original_document_without_calculate_header_and_a_template_and_the_add_header_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''
+ServerName "ProFTPD Anonymous Server"
+ServerType standalone
+
+
+
+ DisplayLogin welcome.msg
+ DisplayFirstChdir .message
+
+
+ Order allow,deny
+ Allow from 10.0.0
+ Deny from all
+
+
+'''
+
+ template_text = '''
+!ServerType standalone
+
+
+
+ Order allow,deny
+ Allow from 10.0.0
+ Deny from all
+
+
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+ServerName "ProFTPD Anonymous Server"
+
+
+ DisplayLogin welcome.msg
+ DisplayFirstChdir .message
+
+
+'''
+
+ original_object = ProFTPDFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = ProFTPDFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_not_set__the_format_object_removes_calculate_header_from_original_document__joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+ServerName "ProFTPD Anonymous Server"
+ServerType standalone
+
+
+
+ DisplayLogin welcome.msg
+ DisplayFirstChdir .message
+
+
+ Order allow,deny
+ Allow from 10.0.0
+ Deny from all
+
+
+'''
+
+ template_text = '''
+!ServerType standalone
+
+
+
+ Order allow,deny
+ Allow from 10.0.0
+ Deny from all
+
+
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+ServerName "ProFTPD Anonymous Server"
+
+
+ DisplayLogin welcome.msg
+ DisplayFirstChdir .message
+
+
+'''
+
+ original_object = ProFTPDFormat(original_text, '/path/to/template',
+ add_header=True)
+ template_object = ProFTPDFormat(template_text, '/path/to/template')
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header_with_a_template_paths_from_the_old_header_and_paths_to_a_current_template(self):
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+ServerName "ProFTPD Anonymous Server"
+ServerType standalone
+
+
+
+ DisplayLogin welcome.msg
+ DisplayFirstChdir .message
+
+
+ Order allow,deny
+ Allow from 10.0.0
+ Deny from all
+
+
+'''
+
+ template_text = '''
+!ServerType standalone
+
+
+
+ Order allow,deny
+ Allow from 10.0.0
+ Deny from all
+
+
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+# /path/to/template
+#-------------------------------------------------------------------------------
+ServerName "ProFTPD Anonymous Server"
+
+
+ DisplayLogin welcome.msg
+ DisplayFirstChdir .message
+
+
+'''
+
+ original_object = ProFTPDFormat(original_text, '/path/to/template',
+ add_header=True, already_changed=True)
+ print('ORIGINAL')
+ pprint(original_object._document_dictionary)
+ template_object = ProFTPDFormat(template_text, '/path/to/template')
+ print('TEMPLATE')
+ pprint(template_object._document_dictionary)
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
diff --git a/tests/templates/format/test_regex.py b/tests/templates/format/test_regex.py
index f7a0bd0..0748952 100644
--- a/tests/templates/format/test_regex.py
+++ b/tests/templates/format/test_regex.py
@@ -85,3 +85,165 @@ Another line of endless sadness.
patch_original.join_template(patch_template)
assert patch_original.document_text == output_text
+
+ def test_if_input_documents_are_an_original_document_without_calculate_header_and_a_template_and_the_add_header_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ parameters = ParametersContainer({'multiline': True, 'dotall': True})
+ original_text = '''[homes]
+ comment = Home Directories
+ browseable = no
+ writable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+[netlogon]
+ comment = Network Logon Service
+ path = /var/lib/samba/netlogon
+ guest ok = yes
+ writable = no
+ share modes = no
+'''
+
+ template_text = r'''
+(\[netlogon\].*)writable\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*
+\1writable = yes
+(\[homes\].*)browseable\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*
+\1browseable = who knows
+(\[netlogon\].*)^\s*guest ok\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*\n
+\1
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+[homes]
+ comment = Home Directories
+ browseable = who knows
+ writable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+[netlogon]
+ comment = Network Logon Service
+ path = /var/lib/samba/netlogon
+ writable = yes
+ share modes = no
+'''
+
+ original_object = RegexFormat(original_text, '/path/to/template',
+ add_header=True, parameters=parameters)
+ template_object = RegexFormat(template_text, '/path/to/template',
+ parameters=parameters)
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_not_set__the_format_object_removes_calculate_header_from_original_document__joins_an_original_document_and_a_template_and_adds_the_calculate_header(self):
+ parameters = ParametersContainer({'multiline': True, 'dotall': True})
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+[homes]
+ comment = Home Directories
+ browseable = no
+ writable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+[netlogon]
+ comment = Network Logon Service
+ path = /var/lib/samba/netlogon
+ guest ok = yes
+ writable = no
+ share modes = no
+'''
+
+ template_text = r'''
+(\[netlogon\].*)writable\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*
+\1writable = yes
+(\[homes\].*)browseable\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*
+\1browseable = who knows
+(\[netlogon\].*)^\s*guest ok\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*\n
+\1
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+[homes]
+ comment = Home Directories
+ browseable = who knows
+ writable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+[netlogon]
+ comment = Network Logon Service
+ path = /var/lib/samba/netlogon
+ writable = yes
+ share modes = no
+'''
+
+ original_object = RegexFormat(original_text, '/path/to/template',
+ add_header=True, parameters=parameters)
+ template_object = RegexFormat(template_text, '/path/to/template',
+ parameters=parameters)
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
+
+ def test_if_input_documents_are_an_original_document_with_calculate_header_and_a_template_the_add_header_flag_is_set_and_the_already_changed_flag_is_set__the_format_object_joins_an_original_document_and_a_template_and_adds_the_calculate_header_with_a_template_paths_from_the_old_header_and_paths_to_a_current_template(self):
+ parameters = ParametersContainer({'multiline': True, 'dotall': True})
+ original_text = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+#-------------------------------------------------------------------------------
+[homes]
+ comment = Home Directories
+ browseable = no
+ writable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+[netlogon]
+ comment = Network Logon Service
+ path = /var/lib/samba/netlogon
+ guest ok = yes
+ writable = no
+ share modes = no
+'''
+
+ template_text = r'''
+(\[netlogon\].*)writable\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*
+\1writable = yes
+(\[homes\].*)browseable\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*
+\1browseable = who knows
+(\[netlogon\].*)^\s*guest ok\s*=\s*[a-zA-Z_][a-zA-Z_0-9]*\n
+\1
+'''
+
+ join_result = '''#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/ancient/template
+# /path/to/template
+#-------------------------------------------------------------------------------
+[homes]
+ comment = Home Directories
+ browseable = who knows
+ writable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+[netlogon]
+ comment = Network Logon Service
+ path = /var/lib/samba/netlogon
+ writable = yes
+ share modes = no
+'''
+
+ original_object = RegexFormat(original_text, '/path/to/template',
+ add_header=True, already_changed=True,
+ parameters=parameters)
+ template_object = RegexFormat(template_text, '/path/to/template',
+ parameters=parameters)
+ original_object.join_template(template_object)
+ assert original_object.document_text == join_result
diff --git a/tests/templates/test_directory_processor.py b/tests/templates/test_directory_processor.py
index 875f945..4d3454d 100644
--- a/tests/templates/test_directory_processor.py
+++ b/tests/templates/test_directory_processor.py
@@ -740,22 +740,122 @@ class TestDirectoryProcessor:
assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_9'))
assert '/etc/file_9' in test_package
- def test_view_tree(self):
- list_path = join_paths(CHROOT_PATH, '/etc')
- show_tree(list_path)
- assert False
+ def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_a_single_template_file_with_condition_and_condition_is_true__the_directory_processor_creates_new_file_and_adds_one_in_the_CONTENTS_file(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_24')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ test_package = Package(test_package_name, chroot_path=CHROOT_PATH)
+ assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_10'))
+ assert '/etc/file_10' in test_package
+
+ def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_a_single_template_file_with_condition_and_condition_is_false__the_directory_processor_does_nothing(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_25')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ test_package = Package(test_package_name, chroot_path=CHROOT_PATH)
+ assert not os.path.exists(join_paths(CHROOT_PATH, '/etc/file_11'))
+ assert '/etc/file_11' not in test_package
+
+ def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_that_contains_calculate_directory_file_with_condition_that_is_true_and_a_single_template_file__the_directory_processor_creates_new_directory_and_file_and_adds_one_in_the_CONTENTS_file(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_26')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ test_package = Package(test_package_name, chroot_path=CHROOT_PATH)
+
+ assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_29'))
+ assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_29/file_0'))
+
+ assert '/etc/dir_29' in test_package
+ assert '/etc/dir_29/file_0' in test_package
+
+ def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_that_contains_calculate_directory_file_with_condition_that_is_false_and_a_single_template_file__the_directory_processor_creates_new_directory_and_file_and_adds_one_in_the_CONTENTS_file(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_27')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ test_package = Package(test_package_name, chroot_path=CHROOT_PATH)
- def test_conditions(self):
- pass
+ assert not os.path.exists(join_paths(CHROOT_PATH,
+ '/etc/dir_30'))
+ assert not os.path.exists(join_paths(CHROOT_PATH,
+ '/etc/dir_30/file_0'))
+
+ assert '/etc/dir_30' not in test_package
+ assert '/etc/dir_30/file_0' not in test_package
+
+ def test_if_templates_contain_a_template_file_with_a_target_path_to_a_file_with_some_cfg_files_and_changes_in_the_template_is_the_same_as_in_the_last_cfg_file__the_directory_processor_does_nothing(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_28')
+ cfg_path_2 = os.path.join(CHROOT_PATH, 'etc/._cfg0002_file_12')
+ cfg_path_3 = os.path.join(CHROOT_PATH, 'etc/._cfg0003_file_12')
+
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/file_12'))
+ assert os.path.exists(cfg_path_2)
+ assert not os.path.exists(cfg_path_3)
+
+ assert '/etc/file_12'\
+ in directory_processor.template_executor.calculate_config_file
+
+ def test_if_templates_contain_a_template_file_with_the_run_parameter_and_a_correct_script___the_directory_processor_runs_the_script_using_the_interpreter_from_the_run_parameter(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_29')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
- def test_config_file(self):
- pass
+ # Скрипт создает файл.
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/file_13'))
- def test_run(self):
- pass
+ def test_if_templates_contain_a_directory_with_a_calculate_directory_file_with_the_run_parameter_and_a_correct_script___the_directory_processor_runs_the_script_using_the_interpreter_from_the_run_parameter(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_30')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ # Скрипт создает файл.
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/file_14'))
+
+ def test_if_templates_contain_some_files_with_the_exec_parameter_and_a_correct_scripts___the_directory_processor_saves_all_the_scripts_in_the_special_execute_directory_and_runs_all_the_files_after_all_templates_are_joined_and_packages_from_the_merge_parameter_is_processed(self):
+ datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH,
+ 'templates_31')
+ directory_processor = DirectoryProcessor('install',
+ datavars_module=datavars)
+ directory_processor.process_template_directories()
+
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/dir_31'))
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/dir_31/file_0'))
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/file_17'))
+
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/file_15'))
+ with open(join_paths(CHROOT_PATH, '/etc/file_15'), 'r') as file_15:
+ file_text = file_15.read()
+ assert file_text == 'There is a strange type = static'
- def test_exec(self):
- pass
+ assert os.path.exists(join_paths(CHROOT_PATH, 'etc/file_16'))
+ with open(join_paths(CHROOT_PATH, '/etc/file_16'), 'r') as file_16:
+ file_text = file_16.read()
+ assert file_text == 'There is a value = 128'
+
+ def test_view_tree(self):
+ list_path = join_paths(CHROOT_PATH, '/etc')
+ show_tree(list_path)
+ assert True
def test_for_removing_testfile(self):
shutil.rmtree(os.path.join(CHROOT_PATH, 'etc'))
diff --git a/tests/templates/test_template_executor.py b/tests/templates/test_template_executor.py
index 7fdbc9d..0c51def 100644
--- a/tests/templates/test_template_executor.py
+++ b/tests/templates/test_template_executor.py
@@ -2479,7 +2479,7 @@ class TestTemplateExecutor:
def test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_and_a_target_path_to_an_existing_directory_and_its_text_is_correct__the_method_runs_a_template_text_in_the_target_directory_and_returns_the_object_with_its_stdout(self):
target_path = join_paths(
CHROOT_PATH,
- '/etc/run_parameter_testfiles/dir_0')
+ '/etc/run_parameter_testfiles/dir_0/file_0')
parameters_object = ParametersContainer({'package': test_package_name,
'run': '/usr/bin/python'})
template_text = '''
@@ -2495,10 +2495,10 @@ print(os.getcwd())'''
assert output['stdout'].strip() == target_path
assert output['stderr'] is None
- def test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_and_a_target_path_to_an_unexisting_directory__the_method_throws_TemplateExecutorError_exception(self):
+ def test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_and_a_directory_from_a_target_path_does_not_exist__the_method_throws_TemplateExecutorError_exception(self):
target_path = join_paths(
CHROOT_PATH,
- '/etc/run_parameter_testfiles/dir_1')
+ '/etc/run_parameter_testfiles/dir_1/file_0')
parameters_object = ParametersContainer({'package': test_package_name,
'run': '/usr/bin/python'})
with pytest.raises(TemplateExecutorError):
@@ -2754,9 +2754,9 @@ print(os.getcwd())'''
counter = 1
for exec_file_path in template_executor.execute_files:
output = template_executor.execute_file(
- template_executor.execute_files[exec_file_path]['cwd_path'],
template_executor.execute_files[exec_file_path]['interpreter'],
- exec_file_path)
+ exec_file_path,
+ template_executor.execute_files[exec_file_path]['cwd_path'] )
assert output['stdout'].strip() == str(counter)
assert output['stderr'] is None
counter += 1
@@ -2787,9 +2787,9 @@ AttributeError: module 'os' has no attribute 'suspicious_attribute'
counter = 1
for exec_file_path in template_executor.execute_files:
output = template_executor.execute_file(
- template_executor.execute_files[exec_file_path]['cwd_path'],
template_executor.execute_files[exec_file_path]['interpreter'],
- exec_file_path)
+ exec_file_path,
+ template_executor.execute_files[exec_file_path]['cwd_path'])
assert output['stdout'] is None
assert output['stderr'] == stderr_text
counter += 1
diff --git a/tests/templates/test_template_wrapper.py b/tests/templates/test_template_wrapper.py
index dda83c7..996c351 100644
--- a/tests/templates/test_template_wrapper.py
+++ b/tests/templates/test_template_wrapper.py
@@ -34,6 +34,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -59,6 +60,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/none'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_type is None
@@ -72,6 +74,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_type == DIR
@@ -86,6 +89,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_type == FILE
@@ -103,6 +107,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_type == FILE
@@ -118,6 +123,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -130,6 +136,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file_link'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -143,6 +150,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -160,6 +168,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_link'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -177,6 +186,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file_link'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_path_is_changed
@@ -192,6 +202,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_type == DIR
@@ -206,6 +217,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_link'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
assert template_wrapper.target_path_is_changed
@@ -222,6 +234,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -234,6 +247,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file_link'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -246,6 +260,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -262,6 +277,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file_link'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -278,6 +294,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_link'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -294,6 +311,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file_link'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -309,6 +327,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_link'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -320,6 +339,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file_link'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -331,6 +351,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_link'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -346,6 +367,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -357,6 +379,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -368,6 +391,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -379,6 +403,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -391,6 +416,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -407,6 +433,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -423,6 +450,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -439,6 +467,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_2'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -455,6 +484,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -467,6 +497,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -482,6 +513,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -499,6 +531,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -515,6 +548,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/other_file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -526,6 +560,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -543,6 +578,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_0/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -558,6 +594,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_1/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -575,6 +612,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_2/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -593,6 +631,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -611,6 +650,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -625,6 +665,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/not_protected/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -639,6 +680,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/terminfo/info.json'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -654,6 +696,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/not_protected/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -669,6 +712,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_0/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -684,6 +728,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/none'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -699,6 +744,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/deleted.json'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -714,6 +760,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -729,6 +776,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_0/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -745,6 +793,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -761,6 +810,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -775,6 +825,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_0/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -792,6 +843,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -809,6 +861,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_0/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -830,6 +883,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -848,6 +902,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir_0/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
for protected_path in template_wrapper._protected_set:
@@ -868,6 +923,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -884,6 +940,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -901,6 +958,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -919,6 +977,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -936,6 +995,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -955,6 +1015,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -971,6 +1032,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -991,6 +1053,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1018,6 +1081,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir'),
parameters_object, DIR,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1045,6 +1109,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1057,6 +1122,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1069,6 +1135,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/file'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1085,6 +1152,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1105,6 +1173,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/dir_1/config.json'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1140,6 +1209,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/none'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
@@ -1158,6 +1228,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1173,6 +1244,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
@@ -1188,6 +1260,7 @@ class TestTemplateWrapper:
join_paths(CHROOT_PATH,
'/etc/dir/file.conf'),
parameters_object, FILE,
+ '/path/to/template',
chroot_path=CHROOT_PATH,
config_archive_path=CONFIG_ARCHIVE_PATH)
except Exception as error:
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc.backup/._cfg0001_file_12 b/tests/templates/testfiles/test_dir_processor_root/etc.backup/._cfg0001_file_12
new file mode 100644
index 0000000..3bae35e
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc.backup/._cfg0001_file_12
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+section-name {
+ parameter-1 yes;
+ parameter-2 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc.backup/._cfg0002_file_12 b/tests/templates/testfiles/test_dir_processor_root/etc.backup/._cfg0002_file_12
new file mode 100644
index 0000000..4ade9c7
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc.backup/._cfg0002_file_12
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_28/root/file_12
+#-------------------------------------------------------------------------------
+section-name {
+ parameter-1 yes;
+ parameter-3 10;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc.backup/file_12 b/tests/templates/testfiles/test_dir_processor_root/etc.backup/file_12
new file mode 100644
index 0000000..b441fd2
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc.backup/file_12
@@ -0,0 +1,3 @@
+section-name {
+ parameter-1 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_12 b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_12
new file mode 100644
index 0000000..3bae35e
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_12
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /path/to/template
+#-------------------------------------------------------------------------------
+section-name {
+ parameter-1 yes;
+ parameter-2 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_2 b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_2
new file mode 100644
index 0000000..e9f5903
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_2
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_8/root/file_2
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_3 b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_3
new file mode 100644
index 0000000..b86f911
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0001_file_3
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/file_3
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0002_file_12 b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0002_file_12
new file mode 100644
index 0000000..4ade9c7
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/._cfg0002_file_12
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_28/root/file_12
+#-------------------------------------------------------------------------------
+section-name {
+ parameter-1 yes;
+ parameter-3 10;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_10/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_10/file_0
new file mode 100644
index 0000000..732a0a0
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_10/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_14/root/dir_10/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_12/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_12/file_0
new file mode 100644
index 0000000..362d7f5
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_12/file_0
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_16/root/dir_12/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_13/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_13/file_0
new file mode 100644
index 0000000..cee59f8
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_13/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_17/root/dir_13/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_17 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_17
new file mode 120000
index 0000000..141c4b8
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_17
@@ -0,0 +1 @@
+dir_18/
\ No newline at end of file
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_18/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_18/file_0
new file mode 100644
index 0000000..4bb4151
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_18/file_0
@@ -0,0 +1,3 @@
+options {
+ parameter-0 yes;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_19 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_19
new file mode 120000
index 0000000..2ba4a07
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_19
@@ -0,0 +1 @@
+dir_20/
\ No newline at end of file
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_2/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_2/file_0
new file mode 100644
index 0000000..8ed6649
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_2/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_20/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_20/file_0
new file mode 100644
index 0000000..4bb4151
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_20/file_0
@@ -0,0 +1,3 @@
+options {
+ parameter-0 yes;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_4/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_4/file_0
new file mode 100644
index 0000000..9470ef5
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_4/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_5/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_5/dir_6/file_0
new file mode 100644
index 0000000..f5dbc4a
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_5/dir_6/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_6/file_0
new file mode 100644
index 0000000..8264731
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_6/file_0
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_7/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_7/file_0
new file mode 100644
index 0000000..3893407
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_7/file_0
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/dir_7/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 no;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/dir_9/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/dir_9/file_0
new file mode 100644
index 0000000..ba36a00
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/dir_9/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_14/root/dir_9/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc/file_0
new file mode 100644
index 0000000..87606a4
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_1/root/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_1 b/tests/templates/testfiles/test_dir_processor_root/etc/file_1
new file mode 100644
index 0000000..fede283
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_1
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_6/root/file_1
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_12 b/tests/templates/testfiles/test_dir_processor_root/etc/file_12
new file mode 100644
index 0000000..b441fd2
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_12
@@ -0,0 +1,3 @@
+section-name {
+ parameter-1 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_2 b/tests/templates/testfiles/test_dir_processor_root/etc/file_2
new file mode 100644
index 0000000..c416be9
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_2
@@ -0,0 +1,3 @@
+options {
+ parameter-0 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_4 b/tests/templates/testfiles/test_dir_processor_root/etc/file_4
new file mode 100644
index 0000000..5032299
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_4
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_4
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 no;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_5 b/tests/templates/testfiles/test_dir_processor_root/etc/file_5
new file mode 100644
index 0000000..7cba6fd
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_5
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_5
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_6 b/tests/templates/testfiles/test_dir_processor_root/etc/file_6
new file mode 100644
index 0000000..98c1d76
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_6
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/etc/file_6
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/file_8 b/tests/templates/testfiles/test_dir_processor_root/etc/file_8
new file mode 100644
index 0000000..5602790
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/file_8
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_13/root/etc/dir_9/file_8
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/group b/tests/templates/testfiles/test_dir_processor_root/etc/group
new file mode 100644
index 0000000..a81c003
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/group
@@ -0,0 +1,66 @@
+root::0:root
+bin::1:root,bin,daemon
+daemon::2:root,bin,daemon
+sys::3:root,bin,adm
+adm::4:root,adm,daemon
+tty::5:
+disk::6:root,adm,haldaemon
+lp::7:lp,guest
+mem::8:
+kmem::9:
+wheel::10:root,guest
+floppy::11:root,haldaemon
+mail::12:mail
+news::13:news
+uucp::14:uucp,guest
+man::15:man
+console::17:
+audio::18:guest
+cdrom::19:haldaemon,guest
+dialout::20:root
+tape::26:root
+video::27:root,guest
+cdrw::80:haldaemon,guest
+usb::85:haldaemon,guest
+users::100:games,guest
+nofiles:x:200:
+smmsp:x:209:smmsp
+portage::250:portage
+utmp:x:406:
+nogroup::65533:
+nobody::65534:
+sshd:x:22:
+games:x:35:guest
+plugdev:x:440:haldaemon,usbmux,guest
+scanner:x:441:guest
+ldap:x:439:
+messagebus:x:199:
+lpadmin:x:106:
+polkituser:x:105:
+cron:x:16:
+ntp:x:123:
+rpc:x:111:
+fingerprint:x:104:
+ssmtp:x:103:
+crontab:x:102:
+gdm:x:101:
+haldaemon:x:999:haldaemon
+openvpn:x:998:
+vnstat:x:997:
+dnsmasq:x:996:
+polkitd:x:995:
+locate:x:994:
+input:x:993:
+dhcp:x:992:
+mysql:x:60:
+netdev:x:991:
+avahi:x:990:
+avahi-autoipd:x:989:
+nm-openvpn:x:988:
+deluge:x:987:
+postgres:x:70:
+nullmail:x:88:
+sudo:x:443:
+kvm:x:78:
+render:x:28:
+guest:!:1000:
diff --git a/tests/templates/testfiles/test_dir_processor_root/etc/passwd b/tests/templates/testfiles/test_dir_processor_root/etc/passwd
new file mode 100644
index 0000000..5d61d91
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/etc/passwd
@@ -0,0 +1,42 @@
+root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/bin:/bin/false
+daemon:x:2:2:daemon:/sbin:/bin/false
+adm:x:3:4:adm:/var/adm:/bin/false
+lp:x:4:7:lp:/var/spool/lpd:/bin/false
+sync:x:5:0:sync:/sbin:/bin/sync
+shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
+halt:x:7:0:halt:/sbin:/sbin/halt
+mail:x:8:12:Mail program user:/var/spool/mail:/sbin/nologin
+news:x:9:13:news:/usr/lib/news:/bin/false
+uucp:x:10:14:uucp:/var/spool/uucppublic:/bin/false
+operator:x:11:0:operator:/root:/bin/bash
+man:x:13:15:man:/usr/share/man:/bin/false
+postmaster:x:14:12:Postmaster user:/var/spool/mail:/sbin/nologin
+portage:x:250:250:portage:/var/tmp/portage:/bin/false
+nobody:x:65534:65534:nobody:/:/bin/false
+sshd:x:22:22:added by portage for openssh:/var/empty:/sbin/nologin
+ldap:x:439:439:added by portage for openldap:/usr/lib64/openldap:/sbin/nologin
+messagebus:x:101:199:System user; messagebus:/dev/null:/sbin/nologin
+polkituser:x:102:105:added by portage for polkit:/dev/null:/sbin/nologin
+cron:x:16:16:added by portage for cronbase:/var/spool/cron:/sbin/nologin
+ntp:x:123:123:added by portage for ntp:/dev/null:/sbin/nologin
+rpc:x:111:111:added by portage for portmap:/dev/null:/sbin/nologin
+gdm:x:103:101:added by portage for gdm:/var/lib/gdm:/sbin/nologin
+haldaemon:x:104:999:added by portage for hal:/dev/null:/sbin/nologin
+openvpn:x:105:998:added by portage for openvpn:/dev/null:/sbin/nologin
+usbmux:x:106:85:added by portage for usbmuxd:/dev/null:/sbin/nologin
+vnstat:x:107:997:added by portage for vnstat:/dev/null:/sbin/nologin
+dnsmasq:x:108:996:added by portage for dnsmasq:/dev/null:/sbin/nologin
+polkitd:x:109:995:added by portage for polkit:/var/lib/polkit-1:/sbin/nologin
+saned:x:110:441:added by portage for sane-backends:/dev/null:/sbin/nologin
+dhcp:x:112:992:added by portage for dhcp:/var/lib/dhcp:/sbin/nologin
+mysql:x:60:60:added by portage for mysql:/dev/null:/sbin/nologin
+avahi:x:113:990:added by portage for avahi:/dev/null:/sbin/nologin
+avahi-autoipd:x:114:989:added by portage for avahi:/dev/null:/sbin/nologin
+nm-openvpn:x:115:988:added by portage for networkmanager-openvpn:/dev/null:/sbin/nologin
+games:x:36:35:added by portage for games-envd:/usr/games:/bin/bash
+deluge:x:116:987:added by portage for deluge:/var/lib/deluge:/sbin/nologin
+postgres:x:70:70:added by portage for postgresql:/var/lib/postgresql:/bin/sh
+nullmail:x:88:88:added by portage for nullmailer:/var/nullmailer:/sbin/nologin
+divanov:x:1427:1000::/home/denis:/bin/bash
+guest:x:1000:1000::/home/guest:/bin/bash
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_24/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_24/root/.calculate_directory
new file mode 100644
index 0000000..2dab668
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_24/root/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_24/root/file_10 b/tests/templates/testfiles/test_dir_processor_root/templates_24/root/file_10
new file mode 100644
index 0000000..8ac874d
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_24/root/file_10
@@ -0,0 +1,6 @@
+{% calculate append = 'join', format = 'bind', path = '/etc' -%}
+{% calculate install.number > 100 -%}
+options {
+ parameter-1 {{ variables.variable_1 }};
+ parameter-2 {{ variables.variable_2 }};
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_25/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_25/root/.calculate_directory
new file mode 100644
index 0000000..2dab668
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_25/root/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_25/root/file_11 b/tests/templates/testfiles/test_dir_processor_root/templates_25/root/file_11
new file mode 100644
index 0000000..c8266be
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_25/root/file_11
@@ -0,0 +1,6 @@
+{% calculate append = 'join', format = 'bind', path = '/etc' -%}
+{% calculate install.number < 100 -%}
+options {
+ parameter-1 {{ variables.variable_1 }};
+ parameter-2 {{ variables.variable_2 }};
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_26/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_26/root/.calculate_directory
new file mode 100644
index 0000000..e60987e
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_26/root/.calculate_directory
@@ -0,0 +1,2 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
+{% calculate path = '/etc' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_26/root/dir_29/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_26/root/dir_29/.calculate_directory
new file mode 100644
index 0000000..dbe3a9f
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_26/root/dir_29/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'join', 2 in variables.group.list %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_26/root/dir_29/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_26/root/dir_29/file_0
new file mode 100644
index 0000000..ba8de1e
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_26/root/dir_29/file_0
@@ -0,0 +1,5 @@
+{% calculate append = 'join', format = 'bind' -%}
+options {
+ parameter-1 {{ variables.variable_1 }};
+ parameter-2 {{ variables.variable_2 }};
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_27/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_27/root/.calculate_directory
new file mode 100644
index 0000000..e60987e
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_27/root/.calculate_directory
@@ -0,0 +1,2 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
+{% calculate path = '/etc' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_27/root/dir_30/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_27/root/dir_30/.calculate_directory
new file mode 100644
index 0000000..800f020
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_27/root/dir_30/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'join', install.number in variables.group.list %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_27/root/dir_30/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_27/root/dir_30/file_0
new file mode 100644
index 0000000..ba8de1e
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_27/root/dir_30/file_0
@@ -0,0 +1,5 @@
+{% calculate append = 'join', format = 'bind' -%}
+options {
+ parameter-1 {{ variables.variable_1 }};
+ parameter-2 {{ variables.variable_2 }};
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_28/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_28/root/.calculate_directory
new file mode 100644
index 0000000..2dab668
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_28/root/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_28/root/file_12 b/tests/templates/testfiles/test_dir_processor_root/templates_28/root/file_12
new file mode 100644
index 0000000..3d189b4
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_28/root/file_12
@@ -0,0 +1,2 @@
+{% calculate append = 'join', format = 'bind', path = '/etc' -%}
+section-name { parameter-3 10; }
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_29/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_29/root/.calculate_directory
new file mode 100644
index 0000000..2dab668
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_29/root/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_29/root/file_13 b/tests/templates/testfiles/test_dir_processor_root/templates_29/root/file_13
new file mode 100644
index 0000000..254f9b6
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_29/root/file_13
@@ -0,0 +1,4 @@
+{% calculate path = '/etc', run = '/usr/bin/python' -%}
+output_text = 'Sorry, you are not a winner'
+with open('./file_13', 'w') as file_13:
+ file_13.write(output_text)
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_30/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_30/root/.calculate_directory
new file mode 100644
index 0000000..2dab668
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_30/root/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'skip', action = 'install', package = 'test-category/test-package' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_30/root/etc/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_30/root/etc/.calculate_directory
new file mode 100644
index 0000000..748faaa
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_30/root/etc/.calculate_directory
@@ -0,0 +1,6 @@
+{% calculate run = '/usr/bin/python' -%}
+import os
+output_text = 'Sorry, you are not a winner'
+with open('./file_14', 'w') as file_14:
+ file_13.write(output_text)
+print('File created on path: {}'.format(os.path.join(os.getcwd(), './file_14')))
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_31/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/.calculate_directory
new file mode 100644
index 0000000..3c0eee1
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'skip', action = 'install', path = '/etc' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_31/root/dir_31/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/dir_31/.calculate_directory
new file mode 100644
index 0000000..0be1eab
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/dir_31/.calculate_directory
@@ -0,0 +1 @@
+{% calculate append = 'join', package = 'test-category/test-package' %}
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_31/root/dir_31/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/dir_31/file_0
new file mode 100644
index 0000000..1888672
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/dir_31/file_0
@@ -0,0 +1,5 @@
+{% calculate append = 'join', format = 'bind', merge = 'test-category/new-package' -%}
+options {
+ parameter-1 {{ variables.variable_1 }};
+ parameter-2 {{ variables.variable_2 }};
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_15 b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_15
new file mode 100644
index 0000000..46974f5
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_15
@@ -0,0 +1,4 @@
+{% calculate path = '/etc', exec = '/usr/bin/python' -%}
+output_text = 'There is a strange type = {{ install.type }}'
+with open('./file_15', 'w') as file_15:
+ file_15.write(output_text)
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_16 b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_16
new file mode 100644
index 0000000..035701c
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_16
@@ -0,0 +1,4 @@
+{% calculate path = '/etc', exec = '/usr/bin/python' -%}
+output_text = 'There is a value = {{ install.number }}'
+with open('./file_16', 'w') as file_16:
+ file_16.write(output_text)
diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_17 b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_17
new file mode 100644
index 0000000..5afc78d
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/templates_31/root/file_17
@@ -0,0 +1,5 @@
+{% calculate append = 'join', format = 'bind', package = 'test-category/new-package' -%}
+options {
+ parameter-1 {{ variables.variable_1 }};
+ parameter-2 {{ variables.variable_2 }};
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/test-package-1.0/CONTENTS b/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/test-package-1.0/CONTENTS
index d9dd73c..0423bad 100644
--- a/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/test-package-1.0/CONTENTS
+++ b/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/test-package-1.0/CONTENTS
@@ -3,3 +3,4 @@ dir /etc/dir_17
obj /etc/dir_17/file_0 c585be6f171462940b44af994a54040d 1593525253
dir /etc/dir_17/dir_0
obj /etc/dir_17/dir_0/file_0 c585be6f171462940b44af994a54040d 1593525253
+obj /etc/file_12 ee090b452dbf92d697124eb424f5de5b 1592574626
diff --git a/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config
index e69de29..37c7054 100644
--- a/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config
+++ b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config
@@ -0,0 +1 @@
+/etc/file_12 da971af62bcd1bf533851f69a2780bf7
diff --git a/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_12 b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_12
new file mode 100644
index 0000000..b441fd2
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_12
@@ -0,0 +1,3 @@
+section-name {
+ parameter-1 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/new-package-0.1.1/CONTENTS b/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/new-package-0.1.1/CONTENTS
new file mode 100644
index 0000000..9c13899
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/new-package-0.1.1/CONTENTS
@@ -0,0 +1,12 @@
+dir /etc
+obj /etc/file_1 823bb8dc6fdf14449714181a729374a9 1594219444
+obj /etc/file_2 178094df387d2f5c2a3516a81fe760de 1594219445
+obj /etc/file_3 ed2b41fe5b2e68ad3a974e0b8f9cc99a 1594219445
+obj /etc/file_4 da04b7769f94c9702c0edcb8bba4770c 1594219445
+dir /etc/dir_6
+obj /etc/dir_6/file_0 e6977bce3e6edd818bb72f324a2a74f3 1594219444
+obj /etc/dir_7/file_0 664c77aaf2d358d227db03545b083ea3 1594219446
+dir /etc/dir_12
+obj /etc/dir_12/file_0 a9109c66e7ec71c12bb2d45273f2c46d 1594219447
+obj /etc/file_5 916eec267d08950072369b69c10a99ae 1594219445
+dir /etc/dir_7
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/other-package-1.1/CONTENTS b/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/other-package-1.1/CONTENTS
new file mode 100644
index 0000000..d01e1e9
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/other-package-1.1/CONTENTS
@@ -0,0 +1,3 @@
+dir /etc
+dir /etc/dir_9
+obj /etc/dir_9/file_0 78373bda3f7f86f54ca25724291a5492 1594219446
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/test-package-1.0/CONTENTS b/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/test-package-1.0/CONTENTS
new file mode 100644
index 0000000..2824015
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/db/pkg/test-category/test-package-1.0/CONTENTS
@@ -0,0 +1,18 @@
+dir /etc
+dir /etc/dir_17
+obj /etc/dir_17/file_0 c585be6f171462940b44af994a54040d 1593525253
+dir /etc/dir_17/dir_0
+obj /etc/dir_17/dir_0/file_0 c585be6f171462940b44af994a54040d 1593525253
+obj /etc/file_12 ee090b452dbf92d697124eb424f5de5b 1592574626
+obj /etc/file_0 d8047d1de0f84955782fb17d9172c283 1594219443
+dir /etc/dir_2
+obj /etc/dir_2/file_0 4d87707225fe92339257baad74d26220 1594219443
+dir /etc/dir_4
+obj /etc/dir_4/file_0 2760f4fa242d649cc32b7c27926b5bf9 1594219444
+dir /etc/dir_5
+dir /etc/dir_5/dir_6
+obj /etc/dir_5/dir_6/file_0 c5f1a785f8e5f4af46c74afcb7c2efcc 1594219444
+obj /etc/file_6 8ad8eb73b5f86ee77c2f4a89f61a5899 1594219446
+obj /etc/file_8 ada08a4f77c8181fa33cac4aa39b2843 1594219446
+dir /etc/dir_10
+obj /etc/dir_10/file_0 454438a905c36213ec67d2a61b855daa 1594219447
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/.config.swo b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/.config.swo
new file mode 100644
index 0000000..01e1a35
Binary files /dev/null and b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/.config.swo differ
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config
new file mode 100644
index 0000000..37c7054
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config
@@ -0,0 +1 @@
+/etc/file_12 da971af62bcd1bf533851f69a2780bf7
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_10/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_10/file_0
new file mode 100644
index 0000000..732a0a0
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_10/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_14/root/dir_10/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_12/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_12/file_0
new file mode 100644
index 0000000..362d7f5
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_12/file_0
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_16/root/dir_12/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_2/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_2/file_0
new file mode 100644
index 0000000..8ed6649
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_2/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_4/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_4/file_0
new file mode 100644
index 0000000..9470ef5
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_4/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_5/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_5/dir_6/file_0
new file mode 100644
index 0000000..f5dbc4a
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_5/dir_6/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_6/file_0
new file mode 100644
index 0000000..8264731
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_6/file_0
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_7/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_7/file_0
new file mode 100644
index 0000000..3893407
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_7/file_0
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/dir_7/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 no;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_9/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_9/file_0
new file mode 100644
index 0000000..ba36a00
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/dir_9/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_14/root/dir_9/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_0 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_0
new file mode 100644
index 0000000..87606a4
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_0
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_1/root/file_0
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_1 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_1
new file mode 100644
index 0000000..fede283
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_1
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_6/root/file_1
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 yes;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_12 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_12
new file mode 100644
index 0000000..b441fd2
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_12
@@ -0,0 +1,3 @@
+section-name {
+ parameter-1 no;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_2 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_2
new file mode 100644
index 0000000..4bb4151
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_2
@@ -0,0 +1,3 @@
+options {
+ parameter-0 yes;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_4 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_4
new file mode 100644
index 0000000..5032299
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_4
@@ -0,0 +1,10 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_4
+#-------------------------------------------------------------------------------
+options {
+ parameter-0 no;
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_5 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_5
new file mode 100644
index 0000000..7cba6fd
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_5
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_5
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_6 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_6
new file mode 100644
index 0000000..98c1d76
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_6
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/etc/file_6
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};
diff --git a/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_8 b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_8
new file mode 100644
index 0000000..5602790
--- /dev/null
+++ b/tests/templates/testfiles/test_dir_processor_root/var/lib/calculate/config-archive/etc/file_8
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------------
+# Modified by Calculate Utilities 4.0
+# Processed template files:
+# /home/divanov/Home/development/calculate-lib/tests/templates/testfiles/test_dir_processor_root/templates_13/root/etc/dir_9/file_8
+#-------------------------------------------------------------------------------
+options {
+ parameter-1 value_1;
+ parameter-2 value_2;
+};