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')
예제 #2
0
    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()
예제 #9
0
    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()
예제 #11
0
    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()
예제 #16
0
    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'))
예제 #40
0
    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")
예제 #45
0
    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")
예제 #47
0
    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)