From 73de9343b86c64c40a53d4b83ea19ca88b7827b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=81?= Date: Thu, 2 Jul 2020 18:18:25 +0300 Subject: [PATCH] Tested processing by the directories processor of the action and autoupdate parameters and joining templates with files with user changes. --- .pytest_cache/v/cache/lastfailed | 379 +----------------- .pytest_cache/v/cache/nodeids | 8 - calculate/templates/template_engine.py | 11 +- calculate/templates/template_processor.py | 50 ++- calculate/utils/io_module.py | 6 + calculate/utils/package.py | 13 +- tests/templates/test_directory_processor.py | 158 +++++++- .../test_dir_processor_root/dir_6/file_0 | 4 - .../etc.backup/dir_7/file_0 | 3 + .../test_dir_processor_root/etc.backup/file_4 | 3 + .../{dir_0 => root}/.calculate_directory | 0 .../{dir_0 => root}/.calculate_directory | 0 .../templates_1/{dir_0 => root}/file_0 | 0 .../templates_10/root/.calculate_directory | 2 + .../root/etc}/.calculate_directory | 0 .../root/etc/dir_7}/.calculate_directory | 0 .../root/etc/dir_7}/file_0 | 0 .../file_0 => templates_10/root/etc/file_4} | 0 .../file_0 => templates_10/root/etc/file_5} | 0 .../templates_11/root/.calculate_directory | 2 + .../root/dir_8}/.calculate_directory | 0 .../templates_12/root_0/.calculate_directory | 2 + .../root_0/etc}/.calculate_directory | 0 .../file_1 => templates_12/root_0/etc/file_6} | 0 .../templates_12/root_1/.calculate_directory | 2 + .../root_1/etc/.calculate_directory | 1 + .../file_2 => templates_12/root_1/etc/file_7} | 0 .../{dir_0 => root}/.calculate_directory | 0 .../root/dir_1/.calculate_directory | 1 + .../{dir_0 => root}/.calculate_directory | 0 .../root/dir_2/.calculate_directory | 1 + .../dir_6 => templates_3/root/dir_2}/file_0 | 0 .../{dir_0 => root}/.calculate_directory | 0 .../{dir_0 => root}/.calculate_directory | 0 .../root/dir_4/.calculate_directory | 1 + .../templates_5/root/dir_4/file_0 | 5 + .../dir_5/.calculate_directory | 0 .../templates_5/root/dir_5/file_0 | 5 + .../{dir_0 => root}/.calculate_directory | 0 .../templates_6/root/file_1 | 5 + .../templates_7/root/.calculate_directory | 2 + .../root/dir_6/.calculate_directory | 1 + .../templates_7/root/dir_6/file_0 | 5 + .../root}/.calculate_directory | 0 .../templates_8/root/file_2 | 5 + .../root}/.calculate_directory | 0 .../templates_9/root/etc/.calculate_directory | 1 + .../templates_9/root/etc/file_3 | 5 + .../test-category/new-package-0.1.1/CONTENTS | 4 + .../config-archive/{ => etc}/dir_6/file_0 | 0 .../calculate/config-archive/{ => etc}/file_1 | 0 .../calculate/config-archive/{ => etc}/file_2 | 0 52 files changed, 254 insertions(+), 431 deletions(-) delete mode 100644 tests/templates/testfiles/test_dir_processor_root/dir_6/file_0 create mode 100644 tests/templates/testfiles/test_dir_processor_root/etc.backup/dir_7/file_0 create mode 100644 tests/templates/testfiles/test_dir_processor_root/etc.backup/file_4 rename tests/templates/testfiles/test_dir_processor_root/templates_0/{dir_0 => root}/.calculate_directory (100%) rename tests/templates/testfiles/test_dir_processor_root/templates_1/{dir_0 => root}/.calculate_directory (100%) rename tests/templates/testfiles/test_dir_processor_root/templates_1/{dir_0 => root}/file_0 (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_10/root/.calculate_directory rename tests/templates/testfiles/test_dir_processor_root/{templates_2/dir_0/dir_1 => templates_10/root/etc}/.calculate_directory (100%) rename tests/templates/testfiles/test_dir_processor_root/{templates_3/dir_0/dir_2 => templates_10/root/etc/dir_7}/.calculate_directory (100%) rename tests/templates/testfiles/test_dir_processor_root/{templates_3/dir_0/dir_2 => templates_10/root/etc/dir_7}/file_0 (100%) rename tests/templates/testfiles/test_dir_processor_root/{templates_5/dir_0/dir_4/file_0 => templates_10/root/etc/file_4} (100%) rename tests/templates/testfiles/test_dir_processor_root/{templates_5/dir_0/dir_5/file_0 => templates_10/root/etc/file_5} (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_11/root/.calculate_directory rename tests/templates/testfiles/test_dir_processor_root/{templates_5/dir_0/dir_4 => templates_11/root/dir_8}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/.calculate_directory rename tests/templates/testfiles/test_dir_processor_root/{templates_7/dir_0/dir_6 => templates_12/root_0/etc}/.calculate_directory (100%) rename tests/templates/testfiles/test_dir_processor_root/{templates_6/dir_0/file_1 => templates_12/root_0/etc/file_6} (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/.calculate_directory create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/etc/.calculate_directory rename tests/templates/testfiles/test_dir_processor_root/{templates_8/dir_0/file_2 => templates_12/root_1/etc/file_7} (100%) rename tests/templates/testfiles/test_dir_processor_root/templates_2/{dir_0 => root}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_2/root/dir_1/.calculate_directory rename tests/templates/testfiles/test_dir_processor_root/templates_3/{dir_0 => root}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/.calculate_directory rename tests/templates/testfiles/test_dir_processor_root/{templates_7/dir_0/dir_6 => templates_3/root/dir_2}/file_0 (100%) rename tests/templates/testfiles/test_dir_processor_root/templates_4/{dir_0 => root}/.calculate_directory (100%) rename tests/templates/testfiles/test_dir_processor_root/templates_5/{dir_0 => root}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/.calculate_directory create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/file_0 rename tests/templates/testfiles/test_dir_processor_root/templates_5/{dir_0 => root}/dir_5/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/file_0 rename tests/templates/testfiles/test_dir_processor_root/templates_6/{dir_0 => root}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_6/root/file_1 create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_7/root/.calculate_directory create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/.calculate_directory create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/file_0 rename tests/templates/testfiles/test_dir_processor_root/{templates_7/dir_0 => templates_8/root}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_8/root/file_2 rename tests/templates/testfiles/test_dir_processor_root/{templates_8/dir_0 => templates_9/root}/.calculate_directory (100%) create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/.calculate_directory create mode 100644 tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/file_3 rename tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/{ => etc}/dir_6/file_0 (100%) rename tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/{ => etc}/file_1 (100%) rename tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/{ => etc}/file_2 (100%) diff --git a/.pytest_cache/v/cache/lastfailed b/.pytest_cache/v/cache/lastfailed index 54536e9..daa1faa 100644 --- a/.pytest_cache/v/cache/lastfailed +++ b/.pytest_cache/v/cache/lastfailed @@ -1,202 +1,27 @@ { - "tests/templates/format/test_base.py::TestJoinMethod::test_if_input_dictionaries_have_no_sections_and_have_only_parameter_lines__it_will_be_processed_correctly": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_input_template_dictionary_has_delete_mark_for_parameter__parameter_will_be_deleted": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_input_template_dictionary_has_delete_mark_for_section__section_will_be_deleted": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_input_template_dictionary_has_replace_mark_for_section__section_will_be_deleted": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_inputs_are_dictionaries_with_parameters_with_same_name_in_same_section__parameters_values_in_original_dictionary_changed_to_values_from_template": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_inputs_are_dictionaries_with_same_sections_which_contain_different_parameters__a_section_from_the_template_added_to_the_same_section_of_original_dictionary": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_inputs_are_dictionaries_with_string_keys_without_any_action_marks__the_dictionaties_just_merged": true, - "tests/templates/format/test_base.py::TestJoinMethod::test_if_inputs_are_dictionaries_with_tuple_keys_without_any_action_marks_as_their_keys__the_dictionaries_just_merged": true, - "tests/templates/format/test_base.py::TestLogicLinesMethod::test_if_input_is_text_document_the_method_returns_list_of_its_lines": true, - "tests/templates/format/test_base.py::TestLogicLinesMethod::test_if_lines_in_document_divided_using_backslash_as_continuation_symbol__method_returns_list_of_full_lines": true, "tests/templates/format/test_bind.py::TestParsingMethods::test_if_comment_parameter_is_set_for_template__format_object_will_parse_comments_with_comment_symbol_from_this_parameter": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_input_document_contains_blocks_and_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_values_or_with_empty_block__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_input_document_contains_some_block_of_parameters__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_input_document_contains_some_blocks_with_similar_names__the_blocks_join_recursively": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_parameters_and_blocks_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value_or_with_special_key_in_block_dictionary": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_join_before": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_bind.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values_and_sections_to_delete__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_input_document_contains_sections_with_different_names_but_different_parameters__the_parameters_merged_in_one_section": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_input_document_contains_sections_with_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_if_the_ignore_comments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_compiz.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_contents.py::TestParsingMethods::test_if_input_document_contains_a_few_lines_with_some_action_symbols__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_contents.py::TestParsingMethods::test_if_input_document_contains_a_few_lines_without_any_action_symbols__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_contents.py::TestParsingMethods::test_if_template_parser_flag_is_set_False__the_initialized_object_contains_correct_dictionary_for_contents_util_module": true, - "tests/templates/format/test_contents.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_diff.py::TestExecuteMethods::test_if_diff_patch_used_for_patching_of_directories__it_changes_files_in_directories_and_adds_ones": true, - "tests/templates/format/test_diff.py::TestExecuteMethods::test_if_diff_patch_used_for_patching_of_several_files__it_changes_patched_file_correctly": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_input_document_contains_blocks_and_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_values_or_with_empty_block__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_input_document_contains_some_block_of_parameters__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_input_document_contains_some_blocks_with_similar_names__the_blocks_join_recursively": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_parameters_and_blocks_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value_or_with_special_key_in_block_dictionary": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_dovecot.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_json.py::TestParsingMethods::test_if_input_document_contains_just_few_parameters_and_parameter_blocks__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_json.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_json.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values_and_sections_to_delete__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_input_document_contains_parameters_with_values_with_unicode_symbols__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_input_document_contains_sections_with_different_names_but_different_parameters__the_parameters_merged_in_one_section": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_input_document_contains_sections_with_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_kde.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_if_input_document_contains_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_kernel.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_doc_contains_some_type_sections_with_plain_directives__object_dictionary_contains_correct_dictionary_with_directives_values_and_comments": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_doc_contains_some_type_sections_with_plain_directives_and_action_marks__object_dictionary_contains_correct_dictionary_with_directives_values_and_comments": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_document_contains_access_to_directive__the_object_s_dictionary_contains_correct_dictionary_with_list_of_access_to_parameters_and_comments": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_document_contains_comments_to_type_sections__the_object_s_dictionary_collect_them": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_document_contains_index_directives__the_object_s_dictionary_contains_correct_dictionary_with_index_elements_and_comments": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_document_contains_syncrepl_and_access_to_constructions_with_action_marks__object_dictionary_contains_correct_dictionary_with_action_marks": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_input_document_contains_syncrepl_directive__the_object_s_dictionary_contains_correct_dictionary_with_list_of_syncrepl_parameters_and_comments": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_logiclines_method_takes_text_with_lines_that_starts_whit_space_symbols__it_returns_joined_lines": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_if_template_text_contains_some_access_to_constuctions_with_same_what_value_and_without_action_marks_for_whole_constructions__they_join_in_one_access_to_construction": true, - "tests/templates/format/test_ldap.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_if_input_document_contains_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_openrc.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_if_input_document_contains_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_postfix.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_if_input_document_contains_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_procmail.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_if_input_document_contains_blocks_and_parameters_with_action_marks__the_key_tuples_of_parameters_s_have_it_as_its_first_element_inherited": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_any_values_the_document_object_contains_dictionary_with_this_items_to_delete": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_if_input_document_contains_some_block_of_parameters__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_if_parameters_and_blocks_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value_or_with_special_key_in_block_dictionary": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_if_the_ignoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_proftpd.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_regex.py::TestParsingMethods::test_if_input_patch_document_contains_only_regular_expressions_without_any_regex_flags__it_correctly_patches_input_document": true, - "tests/templates/format/test_regex.py::TestParsingMethods::test_if_input_patch_document_contains_regular_expressions_with_global_regex_flags_and_flags_as_attributes__it_correctly_patches_input_document_using_regex_flags": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_input_document_contains_few_parameter_lines_and_some_empty_lines__the_initialized_object_contains_correct_dictionary": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_input_document_contains_parameters_to_delete_without_assign_symbol_and_any_values_and_sections_to_delete__the_document_object_contains_dictionary_with_item_to_delete": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_input_document_contains_sections_with_parameters_with_action_marks__the_key_tuples_of_object_s_dictionary_have_it_as_its_first_element": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_input_document_contains_sections_with_similar_names_but_different_parameters__the_parameters_merged_in_one_section": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_input_document_parameters_contains_upper_case_symbols__it_becomes_lower_case": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_joinBefore_flag_is_set__the_document_object_contains_dictionary_with_sections_added_in_the_top_of_it": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_parameter_in_input_document_has_some_comments__the_comments_will_be_collected_in_the_list_of_parameter_value": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_if_the_IgnoreComments_flag_is_set__the_parser_ignores_all_comments": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_samba.py::TestParsingMethods::test_make_template": true, - "tests/templates/format/test_xml_gconf.py::TestParsingMethods::test_if_input_document_is_simple_gconf__the_format_object_contains_correct_dictionary": true, - "tests/templates/format/test_xml_gconf.py::TestParsingMethods::test_if_input_document_is_simple_gconf_tree__the_format_object_contains_correct_dictionary": true, - "tests/templates/format/test_xml_gconf.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/format/test_xml_xfce.py::TestParsingMethods::test_if_input_document_contains_just_few_parameter_lines__the_initialised_object_contains_correct_dictionary": true, - "tests/templates/format/test_xml_xfce.py::TestParsingMethods::test_joining_documents_1": true, - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_with_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file": true, - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file": true, + "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_with_a_target_path_to_a_file_removed_by_user__the_directory_processor_creates_a_new_empty_cfg_file__joins_template_with_it_and_updates_the_CONTENTS_file": true, "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_just_for_debug_with_package_value": true, "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_just_for_debug_without_package_value": true, "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_to_add": true, "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_view_tree": true, "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_bla_bla": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_initialized_accoding_to_dictionary_of_correct_template_parameters__the_TemplateParameters_object_contains_processed_parameters_as_its_attributes_including_default_values": true, "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_initialized_using_": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_initialized_using_dictionary_with_correct_chown_parameter_and_new_chroot_path__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_as_dir_parameters_object_using_correct_source_parameter_with_append_link__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_as_dir_parameters_object_using_source_parameter_but_without_append_link__the_initialization_of_the_object_will_be_failed": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_append_parameter__a_value_of_the_parameter_will_be_checked": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_autoupdate_parameter__a_value_of_the_parameter_will_be_checked": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_correct_chmod_parameter__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_correct_chmod_parameter_in_its_digital_form__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_correct_chown_parameter__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_correct_chown_parameter_in_its_digital_form__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_correct_force_parameter__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_correct_source_parameter__the_object_will_be_initialized_successfully": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_incorrect_autoupdate_parameter__the_initialization_of_the_object_will_be_failed": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_incorrect_chown_parameter__the_initialization_of_the_object_will_be_failed": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_dictionary_with_incorrect_force_parameter__the_initialization_of_the_object_will_be_failed": true, - "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_intialized_using_source_parameter_with_unexisting_file_path__the_initialization_of_the_object_will_be_failed": true, "tests/templates/test_template_action.py": true, "tests/templates/test_template_action.py::TestTemplateAction::test_create_directory": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_binded_with_datavars_module__variables_available_in_a_template": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_calculate_tag_contains_pkg_function_with_an_existing_package_in_its_argument__the_pkg_function_returns_version_value_of_the_package_from_package_parameter_without_any_exceptions": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_calculate_tag_with_some_parameters__the_template_engine_object_will_collect_its_parameters": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_condition_and_it_is_True__the_template_engine_object_will_be_initialized_without_any_exceptions": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_env_parameter_in_which_module_name_is_assigned__the_variables_from_this_module_can_be_used_in_template_without_determining_of_their_module": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_pkg_function_with_existing_package_as_its_argument__it_works_correctly_and_pkg_function_returns_version_value": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_pkg_function_with_package_that_does_not_exist_in_its_argument__it_works_correctly_and_pkg_function_returns_empty_version_value": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_pkg_function_without_any_arguments_and_without_package_parameter_in_calculate_tag__the_pkg_function_returns_empty_version_value": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_pkg_function_without_any_arguments_but_with_package_parameter_in_calculate_tag__the_pkg_function_returns_version_value_of_the_package_from_package_parameter": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_several_calculate_tags__the_template_engine_will_parse_them_all_and_will_contain_all_parameters_and_result_of_all_conditions": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_several_conditions_and_it_is_False__the_template_engine_raises_ConditionFailed_exception": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_an_input_template_contains_variables_in_its_text__the_rendered_text_will_contain_values_of_this_variables": true, - "tests/templates/test_template_engine.py::TestTemplateEngine::test_if_value_of_variable_is_set_using_save_tag__the_new_value_of_variable_can_be_used_in_template": true, "tests/templates/test_template_executor.py::TestTemplateAction": true, "tests/templates/test_template_executor.py::TestTemplateAction::test_if_chown_value_is_not_correct__a_TemplateExecutor_object_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_for_mirror": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_for_the_testfiles_backup": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_function_to_copy_testfiles": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_CalculateConfigFile_object_contains_file_with_its_hash_and_the_hash_compared_with_equal_hash__the_compare_md5_method_returns_True": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_CalculateConfigFile_object_contains_file_with_its_hash_and_the_hash_compared_with_not_equal_hash__the_compare_md5_method_returns_False": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_CalculateConfigFile_object_is_initialized__the_object_can_be_used_for_removing_any_file_from_config_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_CalculateConfigFile_object_is_initialized__the_object_can_be_used_for_setting_hash_sum_for_the_any_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_CalculateConfigFile_object_is_used_for_comparing_a_hash_with_a_hash_of_a_file_that_is_not_in_the_config_file__the_compare_md5_method_returns_False": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_CalculateConfigFile_object_was_used_to_make_changes_in_the_config_file__the_save_changes_method_will_save_the_changes": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_a_TemplateExecutor_object_is_initialized__the_object_can_return_the_set_of_the_supported_values_of_the_append_parameter": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_that_belongs_to_the_template_package_and_chmod_and_chown_parameters_are_set__the_method_clears_directory_removes_all_its_files_from_a_package_CONTENTS_file_and_chmod_and_chown_one": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_with_some_directories_with_files_that_belongs_to_the_template_package__the_method_clears_directory_and_removes_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_with_some_files_that_belongs_to_the_template_package__the_method_clears_directory_and_removes_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_empty_directory_that_belongs_to_the_template_package__the_method_just_removes_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_that_belongs_to_the_template_package__the_method_just_removes_the_directory_and_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_that_does_not_belong_to_the_template_package__the_method_does_nothing": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_clear_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_that_does_not_belong_to_the_template_package__the_method_just_removes_the_directory_and_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_belongs_to_the_template_package__the_method_does_nothing": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_belongs_to_the_template_package__the_method_throws_TemplateCollisionError_error": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_that_does_not_belong_to_any_package__the_method_just_adds_new_directory_to_a_package_contents_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory__the_method_creates_new_directory_and_adds_it_to_a_package_contents_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_an_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_the_unbound_parameter_is_set__the_method_joins_template_and_removes_a_target_file_path_from_a_package_CONTENTS_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_an_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_the_unbound_parameter_is_set_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file__the_method_joins_template__removes_a_target_file_path_from_a_package_CONTENTS_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_an_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_the_unbound_parameter_is_set_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file__the_method_joins_template__removes_a_target_file_path_from_a_package_CONTENTS_file_and_the_config_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_an_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_the_unbound_parameter_is_set_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_there_are_some_cfg_file__the_method_joins_template__removes_a_target_file_path_from_a_package_CONTENTS_file_and_the_config_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_an_unprotected_target_path_to_an_existing_file_that_belongs_to_the_template_package__the_method_just_joins_a_template_to_a_target_file_without_updating_a_CONTENTS_file_and_creating_an_archive_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_an_unprotected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file__the_method_just_joins_a_template_to_a_target_file_without_updating_a_package_CONTENTS_and_the_config_files_and_creating_an_archive_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_its_hash_sum_matches_the_hash_from_a_CONTENTS_file__the_method_joins_an_input_file_with_a_template__changes_its_hash_in_the_CONTENTS__updates_config_archive": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file__the_method_creates_a_cfg_file_and_adds_a_target_file_s_path_to_the_config_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_the_autoupdate_parameter_is_set__the_method_joins_a_target_file_and_a_template__removes_a_path_to_file_from_the_config_file_and_updates_a_package_CONTENTS_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_the_chown_and_chmod_parameters_is_set__the_method_creates_a_cfg_file_and_adds_a_target_file_s_path_to_the_config_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_the_chown_and_chmod_parameters_is_set__the_method_creates_a_cfg_file_and_adds_a_target_file_s_path_to_the_config_file_and_chown_and_chmod_it": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_there_is_some_cfg_files_and_the_autoupdate_parameter_is_set__the_method_joins_a_target_file_and_a_template__removes_a_path_to_file_from_the_config_file__removes_all_cfg_files_and_updates_a_package_CONTENTS_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_there_is_two_cfg_files__the_method_creates_third_cfg_file_and_updates_config_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_but_its_hash_sum_does_not_match_the_hash_from_a_CONTENTS_file_and_there_is_two_cfg_files_and_changes_from_a_template_is_similar_to_the_last_one__the_method_does_nothing": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_existing_file_that_belongs_to_the_template_package_its_hash_sum_matches_the_hash_from_a_CONTENTS_file_and_a_chown_and_chmod_parameters_are_set__the_method_joins_an_input_file_with_a_template__changes_its_hash_in_the_CONTENTS__updates_config_archive_and_chown_and_chmod_it": true, @@ -205,217 +30,17 @@ "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_unexisting_file_that_should_exist_and_chown_and_chmod_parameters_are_set__the_method_creates_new_empty_cfg_file__joins_a_template_with_them__adds_it_to_config_file_and_chown_and_chmod_it": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_unexisting_file_that_should_not_exist__the_method_creates_new_empty_file_joins_a_template_with_them_adds_file_to_the_package_CONTENTS_file_and_create_an_archive_version_of_a_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_join_file_method_s_input_is_a_template_with_protected_target_path_to_an_unexisting_file_that_should_not_exist_and_chown_and_chmod_parameters_are_set__the_method_creates_new_empty_file__joins_a_template_with_them__adds_file_to_the_package_CONTENTS_file__create_an_archive_version_of_a_file_and_chown_and_chmod_it": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_link_directory_method_s_input_is_a_template_with_a_target_path_and_a_source_path_to_the_existing_directory__the_method_creates_a_link_to_the_source_directory_and_adds_this_link_to_the_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_link_directory_method_s_input_is_a_template_with_a_target_path_and_a_source_path_to_the_existing_directory_and_the_chown_and_chmod_parameters_are_set__the_method_creates_a_link_to_the_source_directory_and_adds_this_link_to_the_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_link_file_method_s_input_is_a_template_with_a_target_path_and_a_source_path_to_the_existing_file__the_method_creates_a_link_to_the_source_file_and_adds_this_link_to_the_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_link_file_method_s_input_is_a_template_with_a_target_path_and_a_source_path_to_the_existing_file_and_the_chown_and_chmod_parameters_are_set__the_method_creates_a_link_to_the_source_file_and_adds_this_link_to_the_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_remove_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_that_belongs_to_the_template_package__the_method_removes_a_target_directory_in_a_filesystem_and_in_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_remove_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_that_does_not_belong_to_any_package__the_method_removes_a_target_directory_in_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_remove_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_that_belongs_to_the_template_package__the_method_removes_a_target_directory_in_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_with_some_directories_with_files_that_belongs_to_the_template_package__the_method_clears_directory_and_removes_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_directory_with_some_files_that_belongs_to_the_template_package__the_method_clears_directory_and_removes_all_its_files_from_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_empty_directory_that_belongs_to_the_template_package__the_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_existing_empty_directory_that_belongs_to_the_template_package_and_the_chown_and_chmod_parameters_are_set__the_method_just_chown_and_chmod_a_target_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory__the_method_creates_new_directory_and_add_it_to_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_and_the_chown_and_the_chmod_parameters_are_set__the_method_creates_new_directory_adds_it_to_a_package_CONTENTS_file_and_chown_and_chmod_directory": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_append_replace_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_and_the_chown_and_the_chmod_parameters_are_set__the_method_creates_new_directory_and_add_it_to_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_clear_file_method_s_input_is_a_path_to_an_existing_directory__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_clear_file_method_s_input_is_a_path_to_an_existing_empty_file__the_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_clear_file_method_s_input_is_a_path_to_an_existing_file_with_any_content__the_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_clear_file_method_s_input_is_a_path_to_an_unexisting_file__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_config_directory_is_on_the_config_path_instead_of_config_file__a_CalculateConfigFile_object_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_config_file_does_not_exist__a_CalculateConfigFile_object_will_create_one_while_its_initialization": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_join_parameter_a_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_force_parameter_is_set__the_method_removes_file_on_a_target_path__creates_new_directory_and_changes_target_s_type_to_the_dir_type_in_the_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_join_parameter_a_target_path_to_an_existing_link_to_a_directory_that_belongs_to_the_template_package__the_method_changes_a_target_path_to_a_link_s_source_path_and_returns_one": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_join_parameter_a_target_path_to_an_existing_link_to_a_directory_that_belongs_to_the_template_package_and_force_parameter_is_set__the_method_changes_a_target_path_to_a_link_s_source_path_and_returns_one": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_directory_that_belongs_to_the_template_package__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_directory_that_belongs_to_the_template_package_and_force_parameter_is_set__the_method_removes_a_directory_from_a_target_path_and_creates_a_link_to_a_source_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_file_that_belongs_to_the_template_package__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_file_that_belongs_to_the_template_package_and_force_parameter_is_set__the_method_removes_a_file_from_a_target_path_and_creates_a_link_to_a_source_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_link_to_a_directory_that_belongs_to_the_template_package__the_method_removes_link_on_a_target_path_and_creates_new_one": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_link_to_a_file_that_belongs_to_the_template_package__the_method_throws_TemplateExecutorError_exception": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_link_to_a_file_that_belongs_to_the_template_package__the_method_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_DIR_type_with_the_append_link_parameter_a_target_path_to_an_existing_link_to_a_file_that_belongs_to_the_template_package_and_force_parameter_is_set__the_method_removes_a_link_from_a_target_path_and_creates_a_link_to_a_source_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_FILE_type_with_the_append_join_parameter_a_target_path_to_an_existing_directory_that_belongs_to_the_template_package__the_method_throws_TemplateExecutorError_exception": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_execute_template_method_s_input_is_a_template_of_the_FILE_type_with_the_append_join_parameter_a_target_path_to_an_existing_directory_that_belongs_to_the_template_package_and_force_parameter_is_set__the_method_removes_a_directory_from_a_target_path__creates_empty_file__joins_template_with_the_created_file_and_updates_the_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_some_exec_files_is_saved_and_contains_correct_scripts__the_execute_file_method_can_be_used_for_executing_this_exec_files_and_the_returns_its_stdout_and_stderr": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_some_exec_files_is_saved_and_contains_not_correct_scripts__the_execute_file_method_can_be_used_for_executing_this_exec_files_and_returns_its_stderr_and_stdout": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_after_file_method_s_input_is_a_not_empty_template__the_template_s_text_and_sections_joins_after_the_text_of_the_target_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_before_file_method_s_input_is_a_not_empty_template__the_template_s_text_and_sections_joins_before_the_text_of_the_target_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_clear_file_method_s_input_is_a_template_with_a_target_path_to_an_existing_empty_file_that_belongs_to_the_template_package__the_method_just_updates_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_clear_file_method_s_input_is_a_template_with_a_target_path_to_an_existing_not_empty_file_that_belongs_to_the_template_package__the_method_clears_a_target_file_and_updates_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_clear_file_method_s_input_is_a_template_with_a_target_path_to_an_existing_not_empty_file_that_belongs_to_the_template_package_and_the_chown_and_chmod_parameters_are_set__the_method_clears_a_target_file_and_updates_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_remove_file_method_s_input_is_a_template_with_a_target_path_to_an_existing_file_that_belongs_to_the_template_package__the_method_removes_a_target_file_in_a_filesystem_and_in_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_remove_file_method_s_input_is_a_template_with_a_target_path_to_an_existing_file_that_does_not_belong_to_any_package__the_method_removes_a_target_file_in_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_remove_file_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_file_that_belongs_to_the_template_package__the_method_removes_a_target_file_in_a_package_CONTENTS_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_append_replace_file_method_s_input_is_a_not_empty_template_with_a_target_path_to_an_existing_file__the_method_joins_a_template_with_the_empty_text_and_replaces_the_target_file_with_the_template_join_result": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chmod_directory_method_input_is_a_path_to_the_directory_with_a_fat_filesystem_and_a_correct_chmod_value__TemplateExecutor_object_throws_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chmod_directory_method_input_is_path_to_the_existing_directory_and_correct_chmod_value__the_chmod_directory_method_succesfully_changes_directory_mode": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chmod_directory_method_input_is_path_to_the_unexisting_directory_and_correct_chmod_value__the_chmod_directory_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chmod_file_method_input_is_a_path_to_an_existing_file_and_the_correct_chmod_value__the_chmod_file_method_succesfully_changes_file_owner": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chmod_file_method_input_is_a_path_to_the_file_with_a_fat_filesystem_and_a_correct_chmod_value__TemplateExecutor_object_throws_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chmod_file_method_input_is_path_to_the_unexisting_file_and_correct_chmod_value__the_chmod_file_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chown_directory_method_input_is_a_path_to_the_directory_with_a_fat_filesystem_and_a_correct_chown_value__TemplateExecutor_object_throws_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chown_directory_method_input_is_path_to_the_existing_directory_and_correct_chown_value__the_chown_directory_method_succesfully_changes_directory_owner": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chown_directory_method_input_is_path_to_the_unexisting_directory_and_correct_chown_value__the_chown_directory_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chown_file_method_input_is_a_path_to_an_existing_file_and_the_correct_chown_value__the_chown_file_method_succesfully_changes_file_owner": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chown_file_method_input_is_a_path_to_the_file_from_the_fat_filesystem_and_a_correct_chown_value__TemplateExecutor_object_throws_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_chown_file_method_input_is_path_to_the_unexisting_file_and_correct_chown_value__the_chown_directory_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_clear_directory_method_s_input_is_a_path_to_a_file__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_clear_directory_method_s_input_is_a_path_to_an_existing_directory_that_contains_some_directories__the_method_clears_the_target_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_clear_directory_method_s_input_is_a_path_to_an_existing_directory_that_contains_some_directories_and_files__the_method_clears_the_target_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_clear_directory_method_s_input_is_a_path_to_an_existing_directory_that_contains_some_files__the_method_clears_the_target_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_clear_directory_method_s_input_is_a_path_to_an_existing_empty_directory__the_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_clear_directory_method_s_input_is_a_path_to_an_unexisting_directory__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_create_directory_method_input_is_a_template_with_a_target_path_to_an_existing_directory_and_chown_and_chmod_parameters_is_not_set__the_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_create_directory_method_input_is_a_template_with_a_target_path_to_an_existing_directory_and_chown_and_chmod_parameters_is_set__the_method_chmod_and_chown_target_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_create_directory_method_input_is_a_template_with_a_target_path_to_an_unexisting_directory_from_an_existing_directory_and_chown_and_chmod_parameters_is_not_set__the_method_creates_one_new_directory_with_a_mode_and_an_owner_of_its_parent_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_create_directory_method_input_is_a_template_with_a_target_path_to_an_unexisting_directory_from_an_existing_directory_and_chown_and_chmod_parameters_is_set__the_method_one_new_directory_with_a_mode_and_an_owner_from_the_parameters": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_create_directory_method_input_is_a_template_with_a_target_path_to_an_unexisting_directory_from_an_unexisting_directory_and_chown_and_chmod_parameters_is_not_set__the_method_creates_new_directory_and_all_its_parents_with_a_mode_and_an_owner_of_its_existing_parent": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_create_directory_method_s_input_is_a_template_with_a_target_path_to_an_unexisting_directory_from_an_unexisting_directory_and_chown_and_chmod_parameters_is_set__the_method_creates_new_directory_and_all_its_parents_with_a_mode_and_an_owner_from_the_parameters": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_several_templates_with_the_exec_parameter_and_a_target_paths_to_an_existing_directories_and_files_and_its_text_is_not_empty__the_method_creates_some_exec_files_and_saves_a_paths_to_exec_files_its_interpreters_and_paths_to_a_directories_from_a_target_path_as_cwd_path": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_exec_parameter_a_target_path_to_an_existing_directory_but_interpreter_from_the_exec_parameter_does_not_exist__the_method_throws_the_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_exec_parameter_and_a_target_path_to_an_existing_directory_and_its_text_is_empty__the_method_creates_an_empty_exec_file_and_saves_a_path_to_exec_file_interpreter_and_a_target_path_as_cwd_path": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_exec_parameter_and_a_target_path_to_an_existing_directory_and_its_text_is_not_empty__the_method_creates_an_exec_file_and_saves_a_path_to_exec_file_interpreter_and_a_target_path_as_cwd_path": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_exec_parameter_and_a_target_path_to_an_existing_file_and_its_text_is_not_empty__the_method_creates_an_exec_file_and_saves_a_path_to_exec_file_interpreter_and_a_path_to_a_file_from_a_target_path_as_cwd_path": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_exec_parameter_and_a_target_path_to_an_unexisting_directory__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_exec_parameter_and_a_target_path_to_an_unexisting_file__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_a_target_path_to_an_existing_directory_and_its_text_is_not_correct__the_method_runs_a_template_text_and_returns_the_object_with_its_stderr": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_a_target_path_to_an_existing_directory_but_interpreter_from_the_run_parameter_does_not_exist__the_method_throws_the_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::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": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::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_empty__the_method_does_nothing": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_and_a_target_path_to_an_existing_file_and_its_text_is_correct__the_method_runs_a_template_text_in_a_directory_that_contains_a_file_from_a_target_path_and_returns_the_object_with_its_stdout": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::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": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_execute_template_method_s_input_is_a_template_with_the_run_parameter_and_a_target_path_to_an_unexisting_file__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_mode_method_is_called_with_a_path_to_a_directory_that_does_not_exists__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_mode_method_is_called_with_a_path_to_a_directory_that_exists__the_method_returns_its_mode_value": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_mode_method_is_called_with_a_path_to_a_file_that_does_not_exists__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_mode_method_is_called_with_a_path_to_a_file_that_exists__the_method_returns_its_mode_value": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_owner_method_is_called_with_a_path_to_a_directory_that_does_not_exists__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_owner_method_is_called_with_a_path_to_a_directory_that_exists__the_method_returns_a_dictionary_with_its_owner_s_and_group_s_id": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_owner_method_is_called_with_a_path_to_a_file_that_does_not_exists__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_get_file_owner_method_is_called_with_a_path_to_a_file_that_exists__the_method_returns_a_dictionary_with_its_owner_s_and_group_s_id": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_directory_method_s_input_is_a_path_to_an_existing_source_directory_and_a_target_path__the_method_creates_a_link_to_a_source_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_directory_method_s_input_is_a_path_to_an_existing_source_directory_and_a_target_path_to_an_existing_link__the_method_raises_the_TemplateExecutorError_exception": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_directory_method_s_input_is_a_path_to_an_existing_source_file_and_a_target_path__the_method_creates_a_link_to_a_source_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_directory_method_s_input_is_a_path_to_an_unexisting_source_directory_and_a_target_path__the_method_does_nothing": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_directory_method_s_input_is_a_path_to_an_unexisting_source_directory_and_a_target_path__the_method_raises_the_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_file_method_s_input_is_a_path_to_an_existing_source_file_and_a_target_path__the_method_creates_a_link_to_a_source_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_link_file_method_s_input_is_a_path_to_an_existing_source_file_and_a_target_path_to_an_existing_file__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_directory_method_s_input_is_a_path_to_a_file__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_directory_method_s_input_is_a_path_to_an_existing_directory_that_contains_a_some_files__the_method_will_remove_the_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_directory_method_s_input_is_a_path_to_an_existing_directory_that_contains_directories__the_method_will_remove_the_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_directory_method_s_input_is_a_path_to_an_existing_empty_directory__the_method_will_remove_the_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_directory_method_s_input_is_a_path_to_an_existing_link_to_a_directory__the_method_will_remove_the_link_but_not_the_link_s_source_directory": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_directory_method_s_input_is_a_path_to_an_unexisting_directory__the_method_throws_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_file_method_s_input_is_a_path_to_an_existing_directory__the_method_raises_TemplateExecutorError_exception": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_file_method_s_input_is_a_path_to_an_existing_file__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_file_method_s_input_is_a_path_to_an_existing_file__the_method_removes_a_file": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_file_method_s_input_is_a_path_to_an_existing_link_to_an_existing_file__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_file_method_s_input_is_a_path_to_an_existing_link_to_an_existing_file__the_method_removes_a_file": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_remove_file_method_s_input_is_a_path_to_an_unexisting_file__the_method_raises_TemplateExecutorError_exception": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_if_the_translate_uid_gid_method_s_input_is_uid_and_gid_of_an_existing_user__the_method_returns_user_s_name_and_usser_s_groupname": true, "tests/templates/test_template_executor.py::TestTemplateExecutor::test_to_add_link": true, - "tests/templates/test_template_executor.py::TestTemplateExecutor::test_to_remove_changed_testfiles": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_TemplateWrapper_object_contains_package_value__the_wrapper_can_use_Package_object_for_changing_CONTENTS_file_of_the_package": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized__the_object_can_be_used_for_a_removing_current_file_from_its_package": true, "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized__the_object_can_be_used_for_an_adding_any_files_to_its_package_and_hash_will_be_calculated_automatically": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized__the_object_can_be_used_for_changing_CONTENTS_using_list_of_changed_files": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized_as_DIR__the_object_can_be_used_for_a_removing_current_directory_and_all_its_contents_from_its_package": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized_as_FILE__the_object_can_be_used_for_an_adding_the_current_file_to_its_package_and_hash_will_be_calculated_automatically": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized_as_FILE__the_object_can_be_used_for_an_adding_the_current_file_to_its_package_with_specified_hash": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_object_successfully_initialized_with_DIR_type__the_object_can_be_used_for_a_removing_all_directory_files_from_its_package": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_TemplateWrapper_was_used_to_change_CONTENTS__it_should_be_saved_using_save_changes_method": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_directory_contains_no_cfg_files_but_it_is_necessary_to_create_one__the_first_cfg_file_should_be_named_cfg0001_file": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_directory_contains_some_cfg_files_but_some_of_them_are_missed__the_next_cfg_file_should_be_named_with_the_number_following_the_number_of_the_last_one": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_directory_contains_some_cfg_files_including_the_first_one__the_next_cfg_file_should_be_named_with_the_number_following_the_number_of_the_last_one": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_does_not_belong_to_any_package__the_TemplateWrapper_object_sets_the_md5_matching_flag_as_False": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_does_not_exist_and_CONTENTS_file_of_the_file_s_package_does_not_contain_this_file__the_TemplateWrapper_sets_the_md5_matching_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_is_located_in_a_directory_from_the_protected_mask__the_TemplateWrapper_object_sets_the_protected_flag_as_False": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_is_located_in_a_directory_that_is_not_protected__the_TemplateWrapper_object_sets_the_protected_flag_as_False": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_is_located_in_a_protected_directory__the_TemplateWrapper_object_sets_the_protected_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_is_not_protected__the_TemplateWrapper_sets_the_md5_matching_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_s_hash_does_not_match_the_hash_from_the_package_s_CONTENTS_file__the_TemplateWrapper_object_sets_the_md5_matching_flag_as_False": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_s_hash_matches_the_hash_from_the_package_s_CONTENTS_file__the_TemplateWrapper_object_sets_the_md5_matching_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_file_was_deleted_by_a_user__the_TemplateWrapper_object_sets_the_md5_matching_flag_as_False": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_path_is_DIR_and_a_template_is_executable__the_target_path_is_the_same_and_there_is_no_package_type_conflicts_and_other_checks": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_target_path_is_FILE_and_a_template_is_executable__the_target_path_is_replaced_with_the_path_to_the_cwd_directory_and_there_is_no_package_type_conflicts_and_other_checks": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_template_contains_the_autoupdate_parameter__the_TemplateWrapper_sets_the_md5_matching_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_template_contains_the_autoupdate_parameter_and_a_target_file_does_not_belong_to_any_package__the_TemplateWrapper_sets_the_md5_matching_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_template_contains_the_unbound_parameter__the_TemplateWrapper_sets_the_md5_matching_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_a_template_is_executable_and_contains_package_parameter__the_template_updates_the_CONTENTS_file_for_package_from_parameter": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_after_removing_some_files_thought_TemplateWrapper_some_directories_become_empty__empty_directories_will_be_removed_saving_changes": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_after_the_target_file_check_md5_matching_flag_is_set_as_False_and_a_template_contains_source_parameter__the_output_path_is_the_cfg_file_path_and_the_input_path_is_the_calculate_archive_path": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_after_the_target_file_check_md5_matching_flag_is_set_as_False_and_a_template_does_not_contain_source_parameter__the_output_path_is_the_cfg_file_path_and_the_input_path_is_the_calculate_archive_path": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_after_the_target_file_check_md5_matching_flag_is_set_as_True_and_a_template_contains_source_parameter__the_output_and_the_input_paths_for_the_TemplateExecutor_is_the_same_and_it_is_target_path": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_after_the_target_file_check_md5_matching_flag_is_set_as_True_and_a_template_does_not_contain_source_parameter__the_output_and_the_input_paths_for_the_TemplateExecutor_is_the_same_and_it_is_target_path": true, "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_exec_parameter_is_set_for_template__no_checks_are_carried_out_while_TemplateWrapper_object_initialization": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_exec_parameter_is_set_for_template__no_checks_are_carried_out_while_a_TemplateWrapper_object_initialization": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_get_archive_path_method_has_the_file_path_as_its_argument__it_returns_the_path_to_the_archive_version_of_the_input_file": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_mirror_parameter_is_set_and_file_from_the_source_parameter_does_not_exist__a_TemplateWrapper_object_sets_remove_original_flag_as_True": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_mirror_parameter_is_set_and_target_file_does_not_exist__a_TemplateWrapper_object_throws_TemplateExecutorError": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_run_parameter_is_set_for_template__no_checks_are_carried_out_while_TemplateWrapper_object_initialization": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_run_parameter_is_set_for_template__no_checks_are_carried_out_while_a_TemplateWrapper_object_initialization": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_contains_append_parameters_but_does_not_have_package_parameter_and_target_file_does_not_belong_to_any_package__the_TemplateWrapper_throws_TemplateCollisionError_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_contains_package_parameter_and_target_file_belongs_to_the_package_from_package_parameter__the_TemplateWrapper_uses_package_from_them": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_contains_package_parameter_and_target_file_does_not_belong_to_any_package__the_TemplateWrapper_uses_package_from_parameter_and_sets_target_without_package_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_contains_package_parameter_but_target_file_belongs_to_the_other_package__the_TemplateWrapper_throws_TemplateCollisionError": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_does_not_have_package_parameter_but_target_file_belongs_to_the_package__the_TemplateWrapper_uses_package_from_parameter": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_DIR__the_TemplateWrapper_target_type_is_DIR": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_DIR_and_force_parameter_is_set__the_TemplateWrapper_target_type_is_DIR_and_target_path_is_the_same": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_FILE_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_a_link_to_a_DIR_and_force_parameter_is_not_set__the_TemplateWrapper_changes_its_target_path_to_the_link_source_file": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_a_link_to_a_file_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_the_link_to_a_DIR_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_and_target_file_is_the_link_to_a_FILE_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_but_target_file_is_FILE_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_with_the_append_link_parameter_and_target_file_is_DIR_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_with_the_append_link_parameter_and_target_file_is_DIR_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_with_the_append_link_parameter_and_target_file_is_FILE_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_with_the_append_link_parameter_and_target_file_is_FILE_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_with_the_append_link_parameter_and_target_file_is_the_link_to_a_DIR__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_DIR_with_the_append_link_parameter_and_target_file_is_the_link_to_a_FILE__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_and_target_file_does_not_exist__the_TemplateWrapper_target_type_is_None": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_and_target_file_is_FILE__the_TemplateWrapper_target_type_is_FILE": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_and_target_file_is_FILE_and_force_parameter_is_set__the_TemplateWrapper_target_type_is_FILE_and_target_path_is_same": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_but_target_file_is_DIR_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_but_target_file_is_DIR_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_but_target_file_is_a_link_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_but_target_file_is_a_link_to_a_DIR_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_but_target_file_is_a_link_to_a_FILE_and_force_parameter_is_set__the_TemplateWrapper_changes_its_target_path_to_the_link_source_file": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_with_the_append_link_parameter_and_target_file_is_DIR_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_with_the_append_link_parameter_and_target_file_is_DIR_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_with_the_append_link_parameter_and_target_file_is_FILE_and_force_parameter_is_not_set__the_TemplateWrapper_throws_TemplateTypeConflict_exception": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_with_the_append_link_parameter_and_target_file_is_FILE_and_force_parameter_is_set__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_with_the_append_link_parameter_and_target_file_is_the_link_to_a_DIR__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_template_type_is_FILE_with_the_append_link_parameter_and_target_file_is_the_link_to_a_FILE__the_TemplateWrapper_sets_remove_original_flag": true, - "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_the_TemplateWrapper_object_has_already_been_created__it_contains_the_correct_list_of_protected_and_unprotected_paths": true, - "tests/utils/test_files.py::TestUtils::test_if_a_pipe_Process_object_uses_for_several_writes__it_successfully_executes_even_after_read": true, - "tests/utils/test_files.py::TestUtils::test_if_a_pipe_Process_object_uses_for_several_writes_without_readings__it_successfully_executes": true, - "tests/utils/test_files.py::TestUtils::test_if_pipe_is_executed_using_Process_object__it_has_successfully_executed": true, - "tests/utils/test_files.py::TestUtils::test_if_single_correct_command_executed_using_Process_object__it_successfully_executes": true, - "tests/utils/test_package.py::TestContents::test_if_PackageContents_object_contains_contents_dictionary__it_renders_CONTENTS_file_correctly": true, - "tests/utils/test_package.py::TestContents::test_if_PackageContents_object_initialized_by_existing_package__it_contains_dictionary_of_items_from_contents_file": true, - "tests/utils/test_package.py::TestContents::test_if_new_directory_is_added_in_contents_file_using_add_dir_method__the_PackageContents_object_renders_the_contents_file_with_new_dir": true, - "tests/utils/test_package.py::TestContents::test_if_new_link_is_added_in_contents_file_using_add_sym_method__the_PackageContents_object_renders_the_contents_file_with_new_sym": true, - "tests/utils/test_package.py::TestContents::test_if_new_object_is_added_in_contents_file_using_add_obj_method__the_PackageContents_object_renders_the_contents_file_with_new_obj": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_parsed_a_correct_package_atom_name_but_without_a_slot_and_use_flags__the_PackageAtom_object_returns_atom_name_of_package": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_parsed_a_correct_package_atom_name_with_a_slot_value__the_PackageAtom_returns_atom_name_of_package_with_this_slot": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_parsed_a_correct_package_atom_name_with_a_uses_value__the_PackageAtom_object_returns_atom_name_of_package_with_this_use_flags": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_parsed_a_correct_package_atom_name_with_an_empty_slot_value__the_PackageAtom_object_returns_atom_name_of_package": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_parses_a_correct_package_atom_name_without_version_value_but_with_slot_value__the_PackageAtom_object_looks_for_package_with_assigned_slot_value": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_parses_a_correct_package_atom_name_without_version_value_but_with_use_flags_value__the_PackageAtom_object_looks_for_package_with_assigned_use_flags": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_tried_to_parse_an_correct_package_atom_name_that_matches_multiple_packages__the_PackageAtom_object_gets_info_for_package_with_older_version": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_tried_to_parse_an_incorrect_package_atom_name__the_PackageAtom_object_throws_the_PackageAtomError_exception": true, - "tests/utils/test_package.py::TestContents::test_if_the_PackageAtom_object_tried_to_parse_an_package_atom_name_with_incorrect_use_flags__the_PackageAtom_object_throws_the_PackageAtomError_exception": true, - "tests/utils/test_package.py::TestContents::test_if_the_get_file_package_method_of_the_PackageAtom_object_is_called_with_a_name_of_a_file_that_belongs_to_any_package__the_PackageAtom_object_contains_dictionary_with_an_owner_package": true, - "tests/utils/test_package.py::TestContents::test_if_the_get_file_package_method_of_the_PackageAtom_object_is_called_with_a_name_of_a_file_that_does_not_belong_to_any_package__the_PackageAtom_object_throws_the_PackageAtomError_exception": true, - "tests/utils/test_package.py::TestContents::test_if_two_Version_objects_compared_using_eq_operation_and_the_left_version_value_is_less_than_or_equal_to_the_right_version__the_result_of_the_comparing_would_be_True": true, - "tests/utils/test_package.py::TestContents::test_if_two_Version_objects_compared_using_ge_operation_and_the_left_version_value_is_less_than_or_equal_to_the_right_version__the_result_of_the_comparing_would_be_True": true, - "tests/utils/test_package.py::TestContents::test_if_two_Version_objects_compared_using_gt_operation_and_the_left_version_value_is_less_than_the_right_version__the_result_of_the_comparing_would_be_True": true, - "tests/utils/test_package.py::TestContents::test_if_two_Version_objects_compared_using_le_operation_and_the_left_version_value_is_less_than_or_equal_to_the_right_version__the_result_of_the_comparing_would_be_True": true, - "tests/utils/test_package.py::TestContents::test_if_two_Version_objects_compared_using_lt_operation_and_the_left_version_value_is_less_than_the_right_version__the_result_of_the_comparing_would_be_True": true, - "tests/utils/test_package.py::TestContents::test_if_two_Version_objects_compared_using_ne_operation_and_the_left_version_value_is_less_than_or_equal_to_the_right_version__the_result_of_the_comparing_would_be_True": true, - "tests/vars/test_namespace.py::TestNamespace::test_init_default_path": true, - "tests/vars/test_namespace.py::TestNamespace::test_init_empty_namespace": true + "tests/templates/test_template_wrapper.py::TestTemplateWrapper::test_if_run_parameter_is_set_for_template__no_checks_are_carried_out_while_TemplateWrapper_object_initialization": true } \ No newline at end of file diff --git a/.pytest_cache/v/cache/nodeids b/.pytest_cache/v/cache/nodeids index e2f6473..617661c 100644 --- a/.pytest_cache/v/cache/nodeids +++ b/.pytest_cache/v/cache/nodeids @@ -1,14 +1,6 @@ [ "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_create_testfiles", "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_single_calculate_directory_file_with_the_append_skip_parameter__the_directory_processor_does_nothing", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file__the_directory_processor_creates_new_file_and_adds_one_in_the_CONTENTS_file", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_other_directory_with_same_a_file__the_directory_processor_creates_new_directory", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_other_directory_without_calculate_directory_file__the_directory_processor_creates_new_directory", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_a_single_template_file__the_directory_processor_creates_new_directory_and_file_and_adds_one_in_the_CONTENTS_file", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_with_two_directories_with_a_template_files__the_directory_processor_creates_all_new_directories_and_files_and_adds_them_in_the_CONTENTS_file", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_with_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file", - "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file", "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_view_tree", "tests/templates/test_directory_processor.py::TestDirectoryProcessor::test_for_removing_testfile", "tests/templates/test_parameters_processor.py::TestTemplateParameters::test_if_TemplateParameters_object_is_initialized_accoding_to_dictionary_of_correct_template_parameters__the_TemplateParameters_object_contains_processed_parameters_as_its_attributes_including_default_values", diff --git a/calculate/templates/template_engine.py b/calculate/templates/template_engine.py index 3e5b260..344c9e1 100644 --- a/calculate/templates/template_engine.py +++ b/calculate/templates/template_engine.py @@ -655,12 +655,15 @@ class CalculateContext(Context): class ParametersContainer(MutableMapping): '''Класс для хранения параметров, взятых из шаблона, и передачи их шаблонизатору.''' - def __init__(self, parameters_dictionary={}): + def __init__(self, parameters_dictionary=None): # Слой ненаследуемых параметров. self.__parameters = {} # Слой наследуемых параметров. - self.__inheritable = parameters_dictionary + if parameters_dictionary is not None: + self.__inheritable = parameters_dictionary + else: + self.__inheritable = {} def set_parameter(self, item_to_add: dict): self.__parameters.update(item_to_add) @@ -681,6 +684,10 @@ class ParametersContainer(MutableMapping): print('Inherited:') pprint(self.__inheritable) + def _clear_container(self): + self.__parameters.clear() + self.__inheritable.clear() + def __getattr__(self, parameter_name): if (parameter_name not in ParametersProcessor.available_parameters): diff --git a/calculate/templates/template_processor.py b/calculate/templates/template_processor.py index 8d9228e..82c4413 100644 --- a/calculate/templates/template_processor.py +++ b/calculate/templates/template_processor.py @@ -412,13 +412,15 @@ class TemplateWrapper: # Если целевой файл отсутствует. if self.target_path in self.target_package: # Проверка -- был ли файл удален. - self.md5_matching = False + # self.md5_matching = self.md5_matching + pass else: self.md5_matching = True elif self.target_without_package: # Если файл по целевому пути не относится к какому-либо пакету. - self.md5_matching = False + # self.md5_matching = False + pass elif not self.md5_matching: # Если файл есть и он относится к текущему пакету. # Если по каким-то причинам уже нужно считать, что хэш-суммы @@ -500,14 +502,24 @@ class TemplateWrapper: '''Метод для добавления целевого файла в CONTENTS.''' if self.target_package is None: return + + # В подавляющем большинстве случаев берем хэш-сумму из выходного файла, + # но если по какой-то причине выходного файла нет -- пытаемся + # по целевому. Такое поведение маловероятно, но, наверное, стоит + # учесть возможность такой ситуации. + if os.path.exists(self.output_path): + source_path = self.output_path + else: + source_path = self.target_path + if self.parameters.append == 'link': - self.target_package.add_sym(self.target_path, + self.target_package.add_sym(source_path, self.parameters.source) elif self.template_type == DIR: - self.target_package.add_dir(self.target_path) + self.target_package.add_dir(source_path) elif self.template_type == FILE: - self.target_package.add_obj(self.target_path, file_md5=file_md5) + self.target_package.add_obj(source_path, file_md5=file_md5) def update_contents_from_list(self, changed_list: dict): '''Метод для изменения CONTENTS по списку измененных файлов.''' @@ -622,6 +634,8 @@ class TemplateExecutor: target_package=None): '''Метод для запуска выполнения шаблонов.''' # Словарь с данными о результате работы исполнительного метода. + print('PARAMETERS: {}'.format(parameters)) + print('PACKAGE: {}'.format(target_package)) self.executor_output = {'target_path': None, 'stdout': None, 'stderr': None} @@ -774,6 +788,7 @@ class TemplateExecutor: output_path = template_object.output_path template_format = template_object.format_class + print('JOIN FILE') # Задаемся значениями chmod и chown в зависимости от наличия или # отсутствия файла, принадлежности его пакету и наличия значений @@ -795,13 +810,16 @@ class TemplateExecutor: chown = self.file_default_parameters.get('chown', False) if template_format.EXECUTABLE or template_object.md5_matching: + print('MD5 MATCHES') # Действия при совпадении md5 из CONTENTS и md5 целевого файла. # А также если шаблон просто исполнительный. output_paths = [output_path] # Если целевой файл защищен, а шаблон не userspace. + print('PROTECTED: {}'.format(template_object._protected_set)) if template_object.protected and not template_object.is_userspace: # Тогда также обновляем архив. + print('SAVE ARCHIVE: {}'.format(template_object.archive_path)) output_paths.append(template_object.archive_path) if template_object.target_type is not None and not replace: @@ -809,14 +827,17 @@ class TemplateExecutor: # текст целевого файла. if (not input_path.startswith(self.cl_config_archive_path) or os.path.exists(input_path)): + print('INPUT FROM FILE') # Если входной файл просто не из архива, или из архива и # при этом существует -- используем его with open(input_path, 'r') as input_file: input_text = input_file.read() else: + print('INPUT IS EMPTY ARCHIVE FILE') # В противном случае используем пустой файл. (!) input_text = '' else: + print('INPUT IS NEW EMPTY FILE') input_text = '' parsed_template = template_format(template_object.template_text, @@ -883,7 +904,7 @@ class TemplateExecutor: with open(input_path, 'r') as input_file: input_text = input_file.read() else: - input_path = '' + input_text = '' else: input_text = '' @@ -923,13 +944,12 @@ class TemplateExecutor: self.calculate_config_file.set_files_md5( template_object.target_path, output_text_md5) + # Обновляем CONTENTS. + template_object.add_to_contents(file_md5=output_text_md5) else: # Действия если CL совпало. Пока ничего не делаем. pass - # Обновляем CONTENTS. - # template_object.add_to_contents(file_md5=output_text_md5) - def _append_after_file(self, template_object: TemplateWrapper): '''Метод описывающий действия при append = "after", если шаблон -- файл. Объединяет шаблон с целевым файлом так, чтобы текст добавлялся @@ -1622,6 +1642,8 @@ class DirectoryProcessor: for node in entries: self.directory_tree = {} + print('Empty parameters container: {}'.format( + ParametersContainer())) self.walk_directory_tree(node.path, self.cl_chroot_path, ParametersContainer(), @@ -2011,19 +2033,18 @@ class DirectoryProcessor: '''Метод для проверки параметров action и package во время обработки каталогов с шаблонами. Если среди аргументов указано также дерево каталогов, то''' - print('lets check') - if parameters.append != 'skip': + if parameters.append != 'skip' or parameters.action: if not parameters.action: self.output.set_warning( - ("Action parameter value '{0}' not found." - "\nTemplate: {1}").format(parameters.action, - template_path)) + ("Action parameter is not set for template:" + " {0}").format(template_path)) return False elif parameters.action != self.action: self.output.set_warning( ("Action parameter value '{0}' does not match its" " current value '{1}'.\nTemplate: {2}").format( parameters.action, + self.action, template_path)) return False @@ -2048,5 +2069,4 @@ class DirectoryProcessor: ) return False - print('check is passed') return True diff --git a/calculate/utils/io_module.py b/calculate/utils/io_module.py index 9ec582d..2bf7839 100644 --- a/calculate/utils/io_module.py +++ b/calculate/utils/io_module.py @@ -144,18 +144,24 @@ class ColorPrint: class IOModule: def __init__(self): self.console_output = ColorPrint() + self.messages = [] def set_error(self, message): + self.messages.append(('error', message)) self.console_output.print_error(message) def set_warning(self, message): + self.messages.append(('warning', message)) self.console_output.print_warning(message) def set_info(self, message): + self.messages.append(('info', message)) self.console_output.print_info(message) def set_success(self, message): + self.messages.append(('success', message)) self.console_output.print_ok(message) def set_failure(self, message): + self.messages.append(('fail', message)) self.console_output.print_not_ok(message) diff --git a/calculate/utils/package.py b/calculate/utils/package.py index 4e692d3..a6b4cd6 100644 --- a/calculate/utils/package.py +++ b/calculate/utils/package.py @@ -641,7 +641,6 @@ class Package: def add_dir(self, file_name): '''Метод для добавления в CONTENTS директорий.''' - file_name = self.remove_cfg_prefix(file_name) file_name = self.remove_chroot_path(file_name) if (file_name != '/' and @@ -679,10 +678,9 @@ class Package: def add_obj(self, file_name, file_md5=None): '''Метод для добавления в CONTENTS обычных файлов как obj.''' - file_name = self.remove_cfg_prefix(file_name) - real_path = file_name file_name = self.remove_chroot_path(file_name) + file_name = self.remove_cfg_prefix(file_name) if real_path == file_name: real_path = join_paths(self.chroot_path, file_name) @@ -720,6 +718,8 @@ class Package: def remove_obj(self, file_path): '''Метод для удаления файлов и ссылок.''' file_path = self.remove_chroot_path(file_path) + file_path = self.remove_cfg_prefix(file_path) + if file_path in self.contents_dictionary: self.contents_dictionary.pop(file_path) @@ -791,6 +791,7 @@ class Package: if self.chroot_path != "/" and file_path.startswith(self.chroot_path): file_path = file_path[len(self.chroot_path):] + file_path = self.remove_cfg_prefix(file_path) contents_md5 = self.contents_dictionary[file_path]['md5'] return file_md5 == contents_md5 @@ -798,4 +799,10 @@ class Package: def __contains__(self, file_path): if self.chroot_path != "/" and file_path.startswith(self.chroot_path): file_path = file_path[len(self.chroot_path):] + file_path = self.remove_cfg_prefix(file_path) + return file_path in self.contents_dictionary + + def __repr__(self): + return ''.format(self.package_name.category, + self.package_name.name) diff --git a/tests/templates/test_directory_processor.py b/tests/templates/test_directory_processor.py index 204507b..c475f5f 100644 --- a/tests/templates/test_directory_processor.py +++ b/tests/templates/test_directory_processor.py @@ -5,6 +5,7 @@ import os from calculate.templates.template_processor import DirectoryProcessor from calculate.utils.package import PackageAtomName, Version, Package from calculate.utils.files import join_paths +from calculate.utils.io_module import IOModule from calculate.templates.template_engine import Variables @@ -104,7 +105,7 @@ class TestDirectoryProcessor: datavars_module=datavars) directory_processor.process_template_directories() - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file__the_directory_processor_creates_new_file_and_adds_one_in_the_CONTENTS_file(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file__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_1') directory_processor = DirectoryProcessor('install', @@ -122,7 +123,7 @@ class TestDirectoryProcessor: output_file_text = output_file.read() assert output_file_text == output_text - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_other_directory_with_same_a_file__the_directory_processor_creates_new_directory(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_other_directory_with_same_a_file__the_directory_processor_creates_new_directory(self): datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, 'templates_2') directory_processor = DirectoryProcessor('install', @@ -131,7 +132,7 @@ class TestDirectoryProcessor: assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_1')) - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_other_directory_without_calculate_directory_file__the_directory_processor_creates_new_directory(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_other_directory_without_calculate_directory_file__the_directory_processor_creates_new_directory(self): datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, 'templates_4') directory_processor = DirectoryProcessor('install', @@ -140,7 +141,7 @@ class TestDirectoryProcessor: assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_3')) - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_a_single_template_file__the_directory_processor_creates_new_directory_and_file_and_adds_one_in_the_CONTENTS_file(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_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_3') directory_processor = DirectoryProcessor('install', @@ -161,7 +162,7 @@ class TestDirectoryProcessor: output_file_text = output_file.read() assert output_file_text == output_text - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_with_two_directories_with_a_template_files__the_directory_processor_creates_all_new_directories_and_files_and_adds_them_in_the_CONTENTS_file(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_with_two_directories_with_a_template_files__the_directory_processor_creates_all_new_directories_and_files_and_adds_them_in_the_CONTENTS_file(self): datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, 'templates_5') directory_processor = DirectoryProcessor('install', @@ -196,7 +197,7 @@ class TestDirectoryProcessor: output_file_text = output_file.read() assert output_file_text == output_text - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file(self): datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, 'templates_6') directory_processor = DirectoryProcessor('install', @@ -217,9 +218,9 @@ class TestDirectoryProcessor: output_file_text = output_file.read() assert output_file_text == output_text - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_with_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file(self): datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, - 'templates_8') + 'templates_7') directory_processor = DirectoryProcessor('install', datavars_module=datavars) directory_processor.process_template_directories() @@ -228,19 +229,22 @@ class TestDirectoryProcessor: + ";\n parameter-2 " + datavars.variables.variable_2 + ";\n};\n") - assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_1')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_6')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_6/file_0')) test_package = Package(new_package_name, chroot_path=CHROOT_PATH) - assert '/etc/file_1' in test_package - assert test_package.is_md5_equal('/etc/file_1', - hashlib.md5( - output_text.encode()).hexdigest()) - with open(join_paths(CHROOT_PATH, '/etc/file_1'), 'r') as output_file: + assert '/etc/dir_6' in test_package + assert '/etc/dir_6/file_0' in test_package + with open(join_paths(CHROOT_PATH, + '/etc/dir_6/file_0'), 'r') as output_file: output_file_text = output_file.read() assert output_file_text == output_text + assert test_package.is_md5_equal('/etc/dir_6/file_0', + hashlib.md5( + output_text.encode()).hexdigest()) - def test_if_templates_consist_only_one_directory_with_a_calculate_directory_file_with_a_single_directory_with_a_single_template_file_and_there_is_a_file_without_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file(self): + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_and_a_single_template_file_and_there_is_a_file_with_user_changes_on_its_target_path__the_directory_processor_joins_a_template_file_with_a_target_file_and_updates_the_CONTENTS_file(self): datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, - 'templates_7') + 'templates_8') directory_processor = DirectoryProcessor('install', datavars_module=datavars) directory_processor.process_template_directories() @@ -249,18 +253,128 @@ class TestDirectoryProcessor: + ";\n parameter-2 " + datavars.variables.variable_2 + ";\n};\n") - assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_6')) - assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_6/file_0')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_2')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/._cfg0001_file_2')) + test_package = Package(new_package_name, chroot_path=CHROOT_PATH) - assert '/etc/dir_6' in test_package - assert '/etc/dir_6/file_0' in test_package - assert test_package.is_md5_equal('/etc/dir_6/file_0', + assert '/etc/file_2' in test_package + with open(join_paths(CHROOT_PATH, + '/etc/._cfg0001_file_2'), 'r') as output_file: + output_file_text = output_file.read() + assert output_file_text == output_text + assert test_package.is_md5_equal('/etc/._cfg0001_file_2', hashlib.md5( output_text.encode()).hexdigest()) + + def if_templates_consist_only_one_directory_with_a_calculate_directory_file_one_template_directory_and_a_single_template_file_with_a_target_path_to_a_file_removed_by_user_in_the_last_one__the_directory_processor_creates_a_new_empty_cfg_file__joins_template_with_it_and_updates_the_CONTENTS_file(self): + datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, + 'templates_9') + directory_processor = DirectoryProcessor('install', + datavars_module=datavars) + directory_processor.process_template_directories() + output_text = ("options {\n parameter-1 " + + datavars.variables.variable_1 + + ";\n parameter-2 " + + datavars.variables.variable_2 + ";\n};\n") + + assert not os.path.exists(join_paths(CHROOT_PATH, '/etc/file_3')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/._cfg0001_file_3')) + + test_package = Package(new_package_name, chroot_path=CHROOT_PATH) + assert '/etc/file_3' in test_package with open(join_paths(CHROOT_PATH, - '/etc/dir_6/file_0'), 'r') as output_file: + '/etc/._cfg0001_file_3'), 'r') as output_file: output_file_text = output_file.read() assert output_file_text == output_text + assert test_package.is_md5_equal('/etc/._cfg0001_file_3', + hashlib.md5( + output_text.encode()).hexdigest()) + + def if_templates_are_hierarchy_of_a_multiple_template_files_with_a_removed_or_changed_by_user_targets_and_there_is_the_autoupdate_parameter_in_the_root_calculate_directory_template__the_directory_processor_uses_autoupdate_parameter_for_all_templates_and_joins_all_templates_as_if_target_files_have_no_user_changes(self): + datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, + 'templates_10') + directory_processor = DirectoryProcessor('install', + datavars_module=datavars) + directory_processor.process_template_directories() + output_text_1 = ("options {\n parameter-1 " + + datavars.variables.variable_1 + + ";\n parameter-2 " + + datavars.variables.variable_2 + ";\n};\n") + output_text_2 = ("options {\n parameter-0 no;\n parameter-1 " + + datavars.variables.variable_1 + + ";\n parameter-2 " + + datavars.variables.variable_2 + ";\n};\n") + + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_4')) + assert not os.path.exists(join_paths(CHROOT_PATH, + '/etc/._cfg0001_file_4')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_5')) + assert not os.path.exists(join_paths(CHROOT_PATH, + '/etc/._cfg0001_file_5')) + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_7/file_0')) + assert not os.path.exists(join_paths(CHROOT_PATH, + '/etc/dir_7/._cfg0001_file_0')) + + test_package = Package(new_package_name, chroot_path=CHROOT_PATH) + assert '/etc/file_4' in test_package + assert '/etc/file_5' in test_package + assert '/etc/dir_7/file_0' in test_package + + with open(join_paths(CHROOT_PATH, + '/etc/file_4'), 'r') as output_file: + output_file_text = output_file.read() + assert output_file_text == output_text_2 + assert test_package.is_md5_equal('/etc/file_4', + hashlib.md5( + output_text_2.encode()).hexdigest()) + with open(join_paths(CHROOT_PATH, + '/etc/file_5'), 'r') as output_file: + output_file_text = output_file.read() + assert output_file_text == output_text_1 + assert test_package.is_md5_equal('/etc/file_5', + hashlib.md5( + output_text_1.encode()).hexdigest()) + with open(join_paths(CHROOT_PATH, + '/etc/dir_7/file_0'), 'r') as output_file: + output_file_text = output_file.read() + assert output_file_text == output_text_2 + assert test_package.is_md5_equal('/etc/dir_7/file_0', + hashlib.md5( + output_text_2.encode()).hexdigest()) + + def if_the_template_directory_have_no_the_action_parameter_value_and_append_parameter_is_not_skip__the_directory_processor_skips_this_template_branch_and_sets_warning(self): + datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, + 'templates_11') + io_module = IOModule() + warning_message = ("Action parameter is not set for template:" + " {0}").format(join_paths( + CHROOT_PATH, + '/templates_11/root/dir_8')) + directory_processor = DirectoryProcessor('install', + datavars_module=datavars, + output_module=io_module) + directory_processor.process_template_directories() + assert not os.path.exists(join_paths(CHROOT_PATH, '/etc/dir_8')) + assert io_module.messages[-1] == ('warning', warning_message) + + def if_the_template_has_two_root_directories_with_different_action_values_and_directory_processor_intialized_for_the_one_of_this_actions__the_directory_processor_skips_one_this_template_s_roots_and_processed_a_template_s_root_with_the_same_action_parameter_value(self): + datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, + 'templates_12') + io_module = IOModule() + warning_message = ("Action parameter value '{0}' does not match its" + " current value '{1}'.\nTemplate: {2}").format( + 'update', + 'install', + join_paths( + CHROOT_PATH, + '/templates_12/root_1')) + directory_processor = DirectoryProcessor('install', + datavars_module=datavars, + output_module=io_module) + directory_processor.process_template_directories() + assert os.path.exists(join_paths(CHROOT_PATH, '/etc/file_6')) + assert not os.path.exists(join_paths(CHROOT_PATH, '/etc/file_7')) + assert io_module.messages[-1] == ('warning', warning_message) def test_view_tree(self): list_path = join_paths(CHROOT_PATH, '/etc') diff --git a/tests/templates/testfiles/test_dir_processor_root/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/dir_6/file_0 deleted file mode 100644 index efdb8d3..0000000 --- a/tests/templates/testfiles/test_dir_processor_root/dir_6/file_0 +++ /dev/null @@ -1,4 +0,0 @@ -options { - parameter-1 value_1; - parameter-2 value_2; -}; diff --git a/tests/templates/testfiles/test_dir_processor_root/etc.backup/dir_7/file_0 b/tests/templates/testfiles/test_dir_processor_root/etc.backup/dir_7/file_0 new file mode 100644 index 0000000..c416be9 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/etc.backup/dir_7/file_0 @@ -0,0 +1,3 @@ +options { + parameter-0 no; +}; diff --git a/tests/templates/testfiles/test_dir_processor_root/etc.backup/file_4 b/tests/templates/testfiles/test_dir_processor_root/etc.backup/file_4 new file mode 100644 index 0000000..c416be9 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/etc.backup/file_4 @@ -0,0 +1,3 @@ +options { + parameter-0 no; +}; diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_0/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_0/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_0/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_0/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_1/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_1/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_1/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_1/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_1/dir_0/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_1/root/file_0 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_1/dir_0/file_0 rename to tests/templates/testfiles/test_dir_processor_root/templates_1/root/file_0 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_10/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/.calculate_directory new file mode 100644 index 0000000..c9154f6 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/.calculate_directory @@ -0,0 +1,2 @@ +{% calculate append = 'skip', action = 'install', package = 'test-category/new-package' %} +{% calculate autoupdate %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_2/dir_0/dir_1/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_2/dir_0/dir_1/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_3/dir_0/dir_2/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/dir_7/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_3/dir_0/dir_2/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/dir_7/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_3/dir_0/dir_2/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/dir_7/file_0 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_3/dir_0/dir_2/file_0 rename to tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/dir_7/file_0 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_4/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_4 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_4/file_0 rename to tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_4 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_5/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_5 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_5/file_0 rename to tests/templates/testfiles/test_dir_processor_root/templates_10/root/etc/file_5 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_11/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_11/root/.calculate_directory new file mode 100644 index 0000000..e82b02e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_11/root/.calculate_directory @@ -0,0 +1,2 @@ +{% calculate append = 'skip', package = 'test-category/test-package' %} +{% calculate path = '/etc' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_4/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_11/root/dir_8/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_4/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_11/root/dir_8/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/.calculate_directory new file mode 100644 index 0000000..46b43c6 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/.calculate_directory @@ -0,0 +1,2 @@ +{% calculate append = 'skip', package = 'test-category/test-package' %} +{% calculate path = '/etc', action = 'install' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_7/dir_0/dir_6/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/etc/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_7/dir_0/dir_6/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/etc/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_6/dir_0/file_1 b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/etc/file_6 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_6/dir_0/file_1 rename to tests/templates/testfiles/test_dir_processor_root/templates_12/root_0/etc/file_6 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/.calculate_directory new file mode 100644 index 0000000..583ff8f --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/.calculate_directory @@ -0,0 +1,2 @@ +{% calculate append = 'skip', package = 'test-category/test-package' %} +{% calculate path = '/etc', action = 'update' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/etc/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/etc/.calculate_directory new file mode 100644 index 0000000..6390c76 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/etc/.calculate_directory @@ -0,0 +1 @@ +{% calculate append = 'join' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_8/dir_0/file_2 b/tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/etc/file_7 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_8/dir_0/file_2 rename to tests/templates/testfiles/test_dir_processor_root/templates_12/root_1/etc/file_7 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_2/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_2/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_2/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_2/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_2/root/dir_1/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_2/root/dir_1/.calculate_directory new file mode 100644 index 0000000..6390c76 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_2/root/dir_1/.calculate_directory @@ -0,0 +1 @@ +{% calculate append = 'join' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_3/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_3/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_3/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_3/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/.calculate_directory new file mode 100644 index 0000000..6390c76 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/.calculate_directory @@ -0,0 +1 @@ +{% calculate append = 'join' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_7/dir_0/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/file_0 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_7/dir_0/dir_6/file_0 rename to tests/templates/testfiles/test_dir_processor_root/templates_3/root/dir_2/file_0 diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_4/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_4/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_4/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_4/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_5/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/.calculate_directory new file mode 100644 index 0000000..6390c76 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/.calculate_directory @@ -0,0 +1 @@ +{% calculate append = 'join' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/file_0 new file mode 100644 index 0000000..ba8de1e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_4/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_5/dir_0/dir_5/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_5/dir_0/dir_5/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/file_0 new file mode 100644 index 0000000..ba8de1e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_5/root/dir_5/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_6/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_6/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_6/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_6/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_6/root/file_1 b/tests/templates/testfiles/test_dir_processor_root/templates_6/root/file_1 new file mode 100644 index 0000000..480654e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_6/root/file_1 @@ -0,0 +1,5 @@ +{% calculate append = 'join', format = 'bind', path = '/etc' -%} +options { + parameter-1 {{ variables.variable_1 }}; + parameter-2 {{ variables.variable_2 }}; +}; diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_7/root/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_7/root/.calculate_directory new file mode 100644 index 0000000..8cd0bf5 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_7/root/.calculate_directory @@ -0,0 +1,2 @@ +{% calculate append = 'skip', action = 'install', package = 'test-category/new-package' %} +{% calculate path = '/etc' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/.calculate_directory new file mode 100644 index 0000000..6390c76 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/.calculate_directory @@ -0,0 +1 @@ +{% calculate append = 'join' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/file_0 new file mode 100644 index 0000000..ba8de1e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_7/root/dir_6/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_7/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_8/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_7/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_8/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_8/root/file_2 b/tests/templates/testfiles/test_dir_processor_root/templates_8/root/file_2 new file mode 100644 index 0000000..480654e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_8/root/file_2 @@ -0,0 +1,5 @@ +{% calculate append = 'join', format = 'bind', path = '/etc' -%} +options { + parameter-1 {{ variables.variable_1 }}; + parameter-2 {{ variables.variable_2 }}; +}; diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_8/dir_0/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_9/root/.calculate_directory similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/templates_8/dir_0/.calculate_directory rename to tests/templates/testfiles/test_dir_processor_root/templates_9/root/.calculate_directory diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/.calculate_directory b/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/.calculate_directory new file mode 100644 index 0000000..6390c76 --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/.calculate_directory @@ -0,0 +1 @@ +{% calculate append = 'join' %} diff --git a/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/file_3 b/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/file_3 new file mode 100644 index 0000000..ba8de1e --- /dev/null +++ b/tests/templates/testfiles/test_dir_processor_root/templates_9/root/etc/file_3 @@ -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/var.backup/db/pkg/test-category/new-package-0.1.1/CONTENTS b/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/new-package-0.1.1/CONTENTS index 9be852a..1be54de 100644 --- a/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/new-package-0.1.1/CONTENTS +++ b/tests/templates/testfiles/test_dir_processor_root/var.backup/db/pkg/test-category/new-package-0.1.1/CONTENTS @@ -1,4 +1,8 @@ dir /etc obj /etc/file_1 c585be6f171462940b44af994a54040d 1593525253 +obj /etc/file_2 c585be6f171462940b44af994a54040d 1593525253 +obj /etc/file_3 c585be6f171462940b44af994a54040d 1593525253 +obj /etc/file_4 c585be6f171462940b44af994a54040d 1593525253 dir /etc/dir_6 obj /etc/dir_6/file_0 c585be6f171462940b44af994a54040d 1593525253 +obj /etc/dir_7/file_0 c585be6f171462940b44af994a54040d 1593525253 diff --git a/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/dir_6/file_0 b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/dir_6/file_0 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/dir_6/file_0 rename to tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/dir_6/file_0 diff --git a/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/file_1 b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_1 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/file_1 rename to tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_1 diff --git a/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/file_2 b/tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_2 similarity index 100% rename from tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/file_2 rename to tests/templates/testfiles/test_dir_processor_root/var.backup/lib/calculate/config-archive/etc/file_2