def test_should_create_variables_directory_if_it_does_not_exist(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) mock_mkdir.assert_any_call('/path/to/variables-directory')
def test_should_export_spec_file(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._export_spec_file.assert_called_with()
def test_should_filter_tokens_in_config_viewer(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._filter_tokens_in_config_viewer.assert_called_with()
def test_should_save_network_variables(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_network_variables.assert_called_with()
def test_should_move_variables_out_of_rpm_dir(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._move_variables_out_of_rpm_dir.assert_called_with()
def test_should_build_rpm_using_rpmbuild(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._build_rpm_using_rpmbuild.assert_called_with()
def test_should_clean_up_after_successful_build(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._clean_up.assert_called_with()
def test_should_clean_up_after_successful_build(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._clean_up.assert_called_with()
def test_should_save_network_variables(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_network_variables.assert_called_with()
def test_should_export_spec_file(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._export_spec_file.assert_called_with()
def test_should_save_file_list(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_file_list.assert_called_with()
def test_should_remove_logger_handlers(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._remove_logger_handlers.assert_called_with()
def test_should_create_variables_directory_if_it_does_not_exist(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) mock_mkdir.assert_any_call('/path/to/variables-directory')
def test_should_write_revision_file_for_config_viewer(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_revision_file_for_config_viewer.assert_called_with()
def test_should_save_file_list(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_file_list.assert_called_with()
def test_should_remove_logger_handlers(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._remove_logger_handlers.assert_called_with()
def test_should_move_variables_out_of_rpm_dir(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._move_variables_out_of_rpm_dir.assert_called_with()
def test_should_write_revision_file_for_config_viewer(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_revision_file_for_config_viewer.assert_called_with()
def test_should_filter_tokens_in_config_viewer(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._filter_tokens_in_config_viewer.assert_called_with()
def test_should_build_rpm_using_rpmbuild(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._build_rpm_using_rpmbuild.assert_called_with()
def test_should_save_segment_variables(self, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_segment_variables.assert_called_with( do_not_write_host_segment_variable=False)
def test_should_write_rpm_provides_file(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False self.mock_host_rpm_builder._write_dependency_file = Mock() HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_dependency_file.assert_any_called(['segment1-provides', 'segment2-provides', 'segment3-provides'], 'rpm-provides-path', False)
def test_should_write_rpm_requires_non_repos_file_if_repo_packages_regex_configured(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False self.mock_host_rpm_builder._write_dependency_file = Mock() HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_dependency_file.assert_any_called(['segment1-requires', 'segment2-requires', 'segment3-requires'], 'variables-directory/RPM_REQUIRES_NON_REPOS', positive_filter=False, filter_regex='^yadt-.*-repos?$')
def test_should_save_log_entries_to_variable(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_log_entries_to_variable.assert_called_with(['segment1-svn-paths', 'segment2-svn-paths', 'segment3-svn-paths'])
def test_should_not_build_rpm_using_rpmbuild(self, mock_exists, mock_mkdir, mock_get): mock_get.return_value = True mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) mock_get.assert_any_call() self.assertEqual(0, len(self.mock_host_rpm_builder._build_rpm_using_rpmbuild.call_args_list))
def test_should_write_patch_info_into_variables_and_configviewer(self, mock_exists, mock_mkdir): mock_exists.return_value = False self.mock_host_rpm_builder._generate_patch_info.return_value = "patchinfo1\npatchinfo2\npatchinfo3\n" HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/VARIABLES', 'patchinfo1\npatchinfo2\npatchinfo3\n') self.mock_host_rpm_builder._write_file.assert_any_call('config_viewer_host_dir/devweb01.variables', 'patchinfo1\npatchinfo2\npatchinfo3\n')
def test_should_save_log_entries_to_variable(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_log_entries_to_variable.assert_called_with(['segment1-svn-paths', 'segment2-svn-paths', 'segment3-svn-paths'])
def test_should_write_rpm_name_and_protection_variable_for_host_rpm(self, _, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/RPM_NAME', 'devweb01') self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/INSTALL_PROTECTION_DEPENDENCY', 'hostname-@@@HOST@@@')
def test_should_write_rpm_requires_non_repos_file_if_repo_packages_regex_configured(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False self.mock_host_rpm_builder._write_dependency_file = Mock() HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_dependency_file.assert_any_called(['segment1-requires', 'segment2-requires', 'segment3-requires'], 'variables-directory/RPM_REQUIRES_NON_REPOS', positive_filter=False, filter_regex='^yadt-.*-repos?$')
def test_should_not_build_rpm_using_rpmbuild(self, mock_exists, mock_mkdir, mock_get): mock_get.return_value = True mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) mock_get.assert_any_call() self.assertEqual(0, len(self.mock_host_rpm_builder._build_rpm_using_rpmbuild.call_args_list))
def test_should_write_rpm_provides_file(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False self.mock_host_rpm_builder._write_dependency_file = Mock() HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_dependency_file.assert_any_called(['segment1-provides', 'segment2-provides', 'segment3-provides'], 'rpm-provides-path', False)
def test_should_write_patch_info_into_variables_and_configviewer(self, mock_exists, mock_mkdir): mock_exists.return_value = False self.mock_host_rpm_builder._generate_patch_info.return_value = "patchinfo1\npatchinfo2\npatchinfo3\n" HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/VARIABLES', 'patchinfo1\npatchinfo2\npatchinfo3\n') self.mock_host_rpm_builder._write_file.assert_any_call('config_viewer_host_dir/devweb01.variables', 'patchinfo1\npatchinfo2\npatchinfo3\n')
def test_should_write_rpm_name_and_protection_variable_for_host_rpm(self, _, mock_exists, mock_mkdir): mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/RPM_NAME', 'devweb01') self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/INSTALL_PROTECTION_DEPENDENCY', 'hostname-@@@HOST@@@')
def test_should_write_overlaying_for_config_viewer(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_overlaying_for_config_viewer.assert_called_with({'segment1': ['segment1-exported-paths'], 'segment3': ['segment3-exported-paths'], 'segment2': ['segment2-exported-paths']})
def test_should_write_overlaying_for_config_viewer(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_overlaying_for_config_viewer.assert_called_with({'segment1': ['segment1-exported-paths'], 'segment3': ['segment3-exported-paths'], 'segment2': ['segment2-exported-paths']})
def test_should_get_overlay_segments_for_each_segment_in_overlay_order(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._overlay_segment.assert_any_call('segment1') self.mock_host_rpm_builder._overlay_segment.assert_any_call('segment2') self.mock_host_rpm_builder._overlay_segment.assert_any_call('segment3')
def test_should_get_overlay_segments_for_each_segment_in_overlay_order(self, mock_exists, mock_mkdir, mock_overlay_order): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_exists.return_value = False HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._overlay_segment.assert_any_call('segment1') self.mock_host_rpm_builder._overlay_segment.assert_any_call('segment2') self.mock_host_rpm_builder._overlay_segment.assert_any_call('segment3')
def test_should_save_segment_variables_without_host_when_building_group_rpm(self, _, token_replacer, mock_exists, mock_mkdir): def only_rpm_name_variable_file_exists(path): if path.endswith("RPM_NAME"): return True return False mock_exists.side_effect = only_rpm_name_variable_file_exists HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_segment_variables.assert_called_with(True)
def test_should_remove_variables_directory_after_build_finished(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", hostname="berweb01", revision='1', work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) host_rpm_builder.build() self.assert_path_does_not_exist(join(self.temporary_directory, 'VARIABLES.berweb01'))
def test_should_remove_variables_directory_after_build_finished(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", hostname="berweb01", revision='1', work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) host_rpm_builder.build() self.assert_path_does_not_exist( join(self.temporary_directory, 'VARIABLES.berweb01'))
def test_should_write_not_write_rpm_requires_with_repo_stuff_if_no_repo_packages_regex_configured(self, mock_exists, mock_mkdir, mock_overlay_order, mock_get): config_rpm_maker.hostrpmbuilder.OVERLAY_ORDER = ['segment1', 'segment2', 'segment3'] mock_get.return_value = False mock_exists.return_value = False self.mock_host_rpm_builder._write_dependency_file = Mock() HostRpmBuilder.build(self.mock_host_rpm_builder) self.assertEqual(2, self.mock_host_rpm_builder._write_dependency_file.call_count) self.mock_host_rpm_builder._write_dependency_file.assert_any_called(['segment1-requires', 'segment2-requires', 'segment3-requires'], 'rpm-requires-path', collapse_duplicates=True) self.mock_host_rpm_builder._write_dependency_file.assert_any_called(['segment1-requires', 'segment2-requires', 'segment3-requires'], 'variables-directory/RPM_REQUIRES_REPOS', filter_regex='^yadt-.*-repos?$')
def test_should_save_segment_variables_without_host_when_building_group_rpm(self, token_replacer, mock_exists, mock_mkdir): def only_rpm_name_variable_file_exists(path): if path.endswith("RPM_NAME"): return True return False mock_exists.side_effect = only_rpm_name_variable_file_exists self.mock_host_rpm_builder._get_content.return_value = "any-group-rpm-name" HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._save_segment_variables.assert_called_with( do_not_write_host_segment_variable=True)
def test_should_write_revision_file(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", hostname="berweb01", revision='1', work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) host_rpm_builder.build() host_directory = build_config_viewer_host_directory("berweb01", revision='1') revision_file_path = join(host_directory, 'berweb01.rev') self.assert_path_exists(revision_file_path) self.assert_file_content(revision_file_path, '1')
def test_should_write_empty_protection_variable_for_group_rpm(self, mock_open, token_replacer, mock_exists, mock_mkdir): def only_rpm_name_variable_file_exists(path): if path.endswith("RPM_NAME"): return True return False mock_exists.side_effect = only_rpm_name_variable_file_exists mock_open.return_value.__enter__.return_value.read.return_value.rstrip.return_value = "any-group-rpm-name" HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/INSTALL_PROTECTION_DEPENDENCY', '') for write_call in self.mock_host_rpm_builder._write_file.call_args_list: write_args, _write_kwargs = write_call if "/path/to/variables-directory/RPM_NAME" in write_args: self.fail("Found unwanted call %s, for a group rpm we should not overwrite the RPM_NAME variable!" % str(write_call)) self.assertEqual(self.mock_host_rpm_builder.rpm_name, "any-group-rpm-name")
def test_should_write_revision_file(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", revision='1', hostname="berweb01", work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) host_rpm_builder.build() host_directory = build_config_viewer_host_directory("berweb01", revision='1') revision_file_path = join(host_directory, 'berweb01.rev') self.assert_path_exists(revision_file_path) self.assert_file_content(revision_file_path, '1')
def test_should_write_empty_protection_variable_for_group_rpm(self, token_replacer, mock_exists, mock_mkdir): def only_rpm_name_variable_file_exists(path): if path.endswith("RPM_NAME"): return True return False mock_exists.side_effect = only_rpm_name_variable_file_exists self.mock_host_rpm_builder._get_content.return_value = "any-group-rpm-name" HostRpmBuilder.build(self.mock_host_rpm_builder) self.mock_host_rpm_builder._write_file.assert_any_call('/path/to/variables-directory/INSTALL_PROTECTION_DEPENDENCY', '') for write_call in self.mock_host_rpm_builder._write_file.call_args_list: write_args, _write_kwargs = write_call if "/path/to/variables-directory/RPM_NAME" in write_args: self.fail("Found unwanted call %s, for a group rpm we should not overwrite the RPM_NAME variable!" % str(write_call)) self.assertEqual(self.mock_host_rpm_builder.rpm_name, "any-group-rpm-name")
def test_should_return_rpms(self, mock_exists, mock_mkdir): found_rpms = ['rpm1', 'rpm2', 'rpm3'] self.mock_host_rpm_builder._find_rpms.return_value = found_rpms mock_exists.return_value = False actual_built_rpms = HostRpmBuilder.build(self.mock_host_rpm_builder) self.assertEqual(found_rpms, actual_built_rpms)
def test_should_return_rpms(self, mock_exists, mock_mkdir): found_rpms = ['rpm1', 'rpm2', 'rpm3'] self.mock_host_rpm_builder._find_rpms.return_value = found_rpms mock_exists.return_value = False actual_built_rpms = HostRpmBuilder.build(self.mock_host_rpm_builder) self.assertEqual(found_rpms, actual_built_rpms)