コード例 #1
0
ファイル: test_purge.py プロジェクト: goosemania/pulp_rpm
 def setUp(self):
     super(TestRemoveOldVersions, self).setUp()
     self.rpms = model_factory.rpm_models(3, True)
     self.rpms.extend(model_factory.rpm_models(2, False))
     self.srpms = model_factory.srpm_models(3, True)
     self.srpms.extend(model_factory.srpm_models(2, False))
     self.drpms = model_factory.drpm_models(3, True)
     self.drpms.extend(model_factory.drpm_models(2, False))
コード例 #2
0
 def setUp(self):
     super(TestRemoveOldVersions, self).setUp()
     self.rpms = model_factory.rpm_models(3, True)
     self.rpms.extend(model_factory.rpm_models(2, False))
     self.srpms = model_factory.srpm_models(3, True)
     self.srpms.extend(model_factory.srpm_models(2, False))
     self.drpms = model_factory.drpm_models(3, True)
     self.drpms.extend(model_factory.drpm_models(2, False))
コード例 #3
0
ファイル: test_sync.py プロジェクト: pombredanne/rcm-pulp-rpm
    def test_drpms_to_download(self, mock_package_list_generator, mock_create_downloader):
        """
        test with only DRPMs specified to download
        """
        file_handle = StringIO()
        self.metadata_files.get_metadata_file_handle = mock.MagicMock(
            spec_set=self.metadata_files.get_metadata_file_handle,
            side_effect=[StringIO(), file_handle],
        )
        drpms = model_factory.drpm_models(3)
        for drpm in drpms:
            drpm.metadata['relativepath'] = ''
        mock_package_list_generator.side_effect = iter([[], drpms])
        self.downloader.download = mock.MagicMock(spec_set=self.downloader.download)
        mock_create_downloader.return_value = self.downloader

        # call download, passing in only two of the 3 rpms as units we want
        report = self.reposync.download(self.metadata_files, set(), set(m.as_named_tuple for m in drpms[:2]))

        self.assertEqual(self.downloader.download.call_count, 2)
        self.assertEqual(mock_package_list_generator.call_count, 2)

        # verify that the download requests were correct
        requests = list(self.downloader.download.call_args[0][0])
        self.assertEqual(len(requests), 2)
        self.assertEqual(requests[0].url, os.path.join(self.url, drpms[0].filename))
        self.assertEqual(requests[0].destination, os.path.join(self.reposync.tmp_dir, drpms[0].filename))
        self.assertTrue(requests[0].data is drpms[0])
        self.assertEqual(requests[1].url, os.path.join(self.url, drpms[1].filename))
        self.assertEqual(requests[1].destination, os.path.join(self.reposync.tmp_dir, drpms[1].filename))
        self.assertTrue(requests[1].data is drpms[1])
        self.assertTrue(file_handle.closed)
コード例 #4
0
ファイル: test_sync.py プロジェクト: asmacdo/pulp_rpm
 def test_drpms_check_all_and_associate_negative(self, mock_isfile, mock_save, mock_search_all_units):
     mock_search_all_units.return_value = []
     mock_isfile.return_value = True
     units = model_factory.drpm_models(3)
     input_units = set([unit.as_named_tuple for unit in units])
     result = check_all_and_associate(input_units, self.conduit)
     self.assertEqual(len(list(result)), 3)
コード例 #5
0
ファイル: test_sync.py プロジェクト: asmacdo/pulp_rpm
 def test_drpms_check_all_and_associate_positive(self, mock_isfile, mock_save, mock_search_all_units):
     units = model_factory.drpm_models(3)
     mock_search_all_units.return_value = units
     mock_isfile.return_value = True
     input_units = set([unit.as_named_tuple for unit in units])
     for unit in units:
         unit.metadata['filename'] = 'test-filename'
         unit.storage_path = "existing_storage_path"
     result = check_all_and_associate(input_units, self.conduit)
     self.assertEqual(len(list(result)), 0)
コード例 #6
0
ファイル: test_sync.py プロジェクト: pombredanne/rcm-pulp-rpm
    def test_none_to_download(self, mock_package_list_generator):
        """
        make sure it does nothing if there are no units specified to download
        """
        self.metadata_files.get_metadata_file_handle = mock.MagicMock(
            spec_set=self.metadata_files.get_metadata_file_handle,
            side_effect=StringIO,
        )
        mock_package_list_generator.side_effect = iter([model_factory.rpm_models(3),
                                                    model_factory.drpm_models(3)])

        report = self.reposync.download(self.metadata_files, set(), set())

        self.assertTrue(report.success_flag)
        self.assertEqual(report.added_count, 0)
        self.assertEqual(report.removed_count, 0)
        self.assertEqual(report.updated_count, 0)
コード例 #7
0
ファイル: test_sync.py プロジェクト: pombredanne/rcm-pulp-rpm
    def test_calls_identify_wanted_and_existing(self, mock_check_repo, mock_identify,
                                                mock_generator, mock_open):
        presto_file = StringIO()
        mock_open.return_value = presto_file
        model = model_factory.drpm_models(1)[0]
        self.metadata_files.metadata[presto.METADATA_FILE_NAME] = {'local_path': '/path/to/presto'}
        mock_generator.return_value = [model.as_named_tuple]
        mock_identify.return_value = {model.as_named_tuple: 1024}
        mock_check_repo.return_value = set([model.as_named_tuple])

        ret = self.reposync._decide_drpms_to_download(self.metadata_files)

        self.assertEqual(ret, (set([model.as_named_tuple]), 1, 1024))
        mock_open.assert_called_once_with('/path/to/presto', 'r')
        mock_generator.assert_called_once_with(presto_file, presto.PACKAGE_TAG, presto.process_package_element)
        mock_identify.assert_called_once_with(mock_generator.return_value)
        self.assertTrue(presto_file.closed)
コード例 #8
0
ファイル: test_sync.py プロジェクト: pombredanne/rcm-pulp-rpm
    def test_all(self, mock_decide_drpms, mock_decide_rpms):
        rpm_model = model_factory.rpm_models(1)[0]
        drpm_model = model_factory.drpm_models(1)[0]
        mock_decide_rpms.return_value = (set([rpm_model.as_named_tuple]), 1, 1024)
        mock_decide_drpms.return_value = (set([drpm_model.as_named_tuple]), 1, 1024)
        self.conduit.set_progress = mock.MagicMock(spec_set=self.conduit.set_progress)

        ret = self.reposync._decide_what_to_download(self.metadata_files)

        self.assertEqual(ret[0], set([rpm_model.as_named_tuple]))
        self.assertEqual(ret[1], set([drpm_model.as_named_tuple]))
        self.assertEqual(len(ret), 2)
        mock_decide_rpms.assert_called_once_with(self.metadata_files)
        mock_decide_drpms.assert_called_once_with(self.metadata_files)
        self.assertEqual(self.conduit.set_progress.call_count, 1)

        # make sure we reported initial progress values correctly
        report = self.conduit.set_progress.call_args[0][0]
        self.assertEqual(report['content']['size_total'], 2048)
        self.assertEqual(report['content']['size_left'], 2048)
        self.assertEqual(report['content']['items_total'], 2)
        self.assertEqual(report['content']['items_left'], 2)
        self.assertEqual(report['content']['details']['rpm_total'], 1)
        self.assertEqual(report['content']['details']['drpm_total'], 1)