Ejemplo n.º 1
0
    def test_validate_config(self):
        """
        There is no config, so we'll just assert that validation passes.
        """
        pulpimp = importer.DebImporter()
        return_value = pulpimp.validate_config(mock.MagicMock(), {})

        self.assertEqual(return_value, (True, None))
Ejemplo n.º 2
0
    def test_sync(self, _RepoSync):
        # Basic test to make sure we're passing information correctly into
        # RepoSync, which itself is tested in test_sync
        repo = mock.MagicMock()
        conduit = mock.MagicMock()
        cfg = mock.MagicMock()

        pulpimp = importer.DebImporter()
        pulpimp.sync_repo(repo, conduit, cfg)

        self.assertEquals(pulpimp._current_sync, _RepoSync.return_value)
        _RepoSync.assert_called_once_with(repo, conduit, cfg)
        self.assertEquals(repo.repo_obj, conduit.repo)
Ejemplo n.º 3
0
    def test_import_units_units_none(self, _repo_controller, _platform_models):
        """
        Assert correct behavior when units == None.
        """
        src_repo = mock.MagicMock()
        dst_repo = mock.MagicMock()
        _platform_models.Repository.objects.get.side_effect = [src_repo,
                                                               dst_repo]
        Deb = models.DebPackage
        units = [
            Deb(name="unit_a", version="1"),
            Deb(name="unit_b", version="1"),
            Deb(name="unit_3", version="1"),
        ]

        _repo_controller.find_repo_content_units.return_value = units

        pulpimp = importer.DebImporter()
        import_conduit = mock.MagicMock()

        imported_units = pulpimp.import_units(mock.MagicMock(),
                                              mock.MagicMock(),
                                              import_conduit,
                                              mock.MagicMock(),
                                              units=None)

        # Assert that the correct criteria was used
        _repo_controller.find_repo_content_units.assert_called_once_with(
            src_repo, yield_content_unit=True)
        # Assert that the units were associated correctly
        _u = sorted(units)
        self.assertEquals(
            [
                mock.call(repository=dst_repo, unit=_u[0]),
                mock.call(repository=dst_repo, unit=_u[1]),
                mock.call(repository=dst_repo, unit=_u[2]),
            ],
            _repo_controller.associate_single_unit.call_args_list)
        self.assertEqual(imported_units, sorted(units))
Ejemplo n.º 4
0
    def test_upload_unit_deb(self, _plugin_api, from_file,
                             _get_db, _repo_controller):
        """
        Assert correct operation of upload_unit().
        """
        _plugin_api.get_unit_model_by_id.return_value = models.DebPackage
        file_path, checksum = self.new_file("foo.deb")
        deb_file, checksum = self.new_file('foo.deb')

        unit_key = dict()
        metadata = dict(
            name="foo", version="1.1",
            filename=os.path.basename(file_path),
            architecture="x86_64",
            checksumtype="sha256",
            depends=[{'name': 'glibc'}],
            checksum=checksum)
        package = models.DebPackage(**metadata)
        from_file.return_value = package

        pulpimp = importer.DebImporter()
        repo = mock.MagicMock()
        type_id = ids.TYPE_ID_DEB
        conduit = mock.MagicMock()
        config = {}
        models.DebPackage.attach_signals()

        report = pulpimp.upload_unit(repo, type_id, unit_key, metadata,
                                     deb_file, conduit, config)

        from_file.assert_called_once_with(file_path, metadata)

        obj_id = _get_db.return_value.__getitem__.return_value.save.return_value.decode.return_value  # noqa

        metadata.update(
            id=obj_id,
            downloaded=True,
            pulp_user_metadata=dict(),
            relativepath=None,
            installed_size=None,
            priority=None,
            section=None,
            source=None,
            depends=None,
            maintainer=None,
            multi_arch=None,
            original_maintainer=None,
            homepage=None,
            description=None,
            size=None,
            control_fields=None,
        )
        for fname in models.DebPackage.REL_FIELDS:
            metadata[fname] = None
        metadata['depends'] = [{'name': 'glibc'}]
        unit_key = dict((x, metadata[x])
                        for x in models.DebPackage.unit_key_fields)

        self.assertEqual(report,
                         {'success_flag': True,
                          'details': dict(
                              unit=dict(unit_key=unit_key, metadata=metadata)
                          ),
                          'summary': ''})