Ejemplo n.º 1
0
    def test_package_copying(self):
        import copy

        pkg_a = cr.Package()
        pkg_a.name = "FooPackage"
        pkg_b = pkg_a
        self.assertEqual(id(pkg_a), id(pkg_b))
        pkg_c = copy.copy(pkg_a)
        self.assertFalse(id(pkg_a) == id(pkg_c))
        pkg_d = copy.deepcopy(pkg_a)
        self.assertFalse(id(pkg_a) == id(pkg_d))
        self.assertFalse(id(pkg_c) == id(pkg_d))

        # Next lines should not fail (if copy really works)
        del (pkg_a)
        del (pkg_b)
        self.assertEqual(pkg_c.name, "FooPackage")
        del (pkg_c)
        self.assertEqual(pkg_d.name, "FooPackage")
        del (pkg_d)
Ejemplo n.º 2
0
 def newpkgcb(pkgId, name, arch):
     pkg = cr.Package()
     userdata["pkgs"].append(pkg)
     return pkg
Ejemplo n.º 3
0
 def newpkgcb(pkgId, name, arch):
     return cr.Package()
Ejemplo n.º 4
0
    def to_createrepo_c(self):
        """
        Convert Package object to a createrepo_c package object.

        Currently it works under assumption that Package attributes' names are exactly the same
        as createrepo_c ones.

        Returns:
            createrepo_c.Package: package itself in a format of a createrepo_c package object

        """
        def list_to_createrepo_c(l):
            """
            Convert list to createrepo_c format.

            Createrepo_c expects list of tuples, not list of lists.
            The assumption is that there are no nested lists, which is true for the data on the
            Package model at the moment.

            Args:
                l(list): a list

            Returns:
                list: list of strings and/or tuples

            """
            createrepo_c_list = []
            for item in l:
                if isinstance(item, list):
                    createrepo_c_list.append(tuple(item))
                else:
                    createrepo_c_list.append(item)

            return createrepo_c_list

        package = cr.Package()
        package.arch = getattr(self, PULP_PACKAGE_ATTRS.ARCH)
        package.changelogs = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.CHANGELOGS))
        package.checksum_type = getattr(self, PULP_PACKAGE_ATTRS.CHECKSUM_TYPE)
        package.conflicts = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.CONFLICTS))
        package.description = getattr(self, PULP_PACKAGE_ATTRS.DESCRIPTION)
        package.enhances = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.ENHANCES))
        package.epoch = getattr(self, PULP_PACKAGE_ATTRS.EPOCH)
        package.files = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.FILES))
        package.location_base = getattr(self, PULP_PACKAGE_ATTRS.LOCATION_BASE)
        package.location_href = getattr(self, PULP_PACKAGE_ATTRS.LOCATION_HREF)
        package.name = getattr(self, PULP_PACKAGE_ATTRS.NAME)
        package.obsoletes = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.OBSOLETES))
        package.pkgId = getattr(self, PULP_PACKAGE_ATTRS.PKGID)
        package.provides = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.PROVIDES))
        package.recommends = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.RECOMMENDS))
        package.release = getattr(self, PULP_PACKAGE_ATTRS.RELEASE)
        package.requires = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.REQUIRES))
        package.rpm_buildhost = getattr(self, PULP_PACKAGE_ATTRS.RPM_BUILDHOST)
        package.rpm_group = getattr(self, PULP_PACKAGE_ATTRS.RPM_GROUP)
        package.rpm_header_end = getattr(self,
                                         PULP_PACKAGE_ATTRS.RPM_HEADER_END)
        package.rpm_header_start = getattr(self,
                                           PULP_PACKAGE_ATTRS.RPM_HEADER_START)
        package.rpm_license = getattr(self, PULP_PACKAGE_ATTRS.RPM_LICENSE)
        package.rpm_packager = getattr(self, PULP_PACKAGE_ATTRS.RPM_PACKAGER)
        package.rpm_sourcerpm = getattr(self, PULP_PACKAGE_ATTRS.RPM_SOURCERPM)
        package.rpm_vendor = getattr(self, PULP_PACKAGE_ATTRS.RPM_VENDOR)
        package.size_archive = getattr(self, PULP_PACKAGE_ATTRS.SIZE_ARCHIVE)
        package.size_installed = getattr(self,
                                         PULP_PACKAGE_ATTRS.SIZE_INSTALLED)
        package.size_package = getattr(self, PULP_PACKAGE_ATTRS.SIZE_PACKAGE)
        package.suggests = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.SUGGESTS))
        package.summary = getattr(self, PULP_PACKAGE_ATTRS.SUMMARY)
        package.supplements = list_to_createrepo_c(
            getattr(self, PULP_PACKAGE_ATTRS.SUPPLEMENTS))
        package.time_build = getattr(self, PULP_PACKAGE_ATTRS.TIME_BUILD)
        package.time_file = getattr(self, PULP_PACKAGE_ATTRS.TIME_FILE)
        package.url = getattr(self, PULP_PACKAGE_ATTRS.URL)
        package.version = getattr(self, PULP_PACKAGE_ATTRS.VERSION)

        return package
Ejemplo n.º 5
0
 def test_pkg_id_str_01(self):
     pkg = cr.Package()
     idstr = pkg_id_str(pkg)
     self.assertEqual(idstr, "")
Ejemplo n.º 6
0
    def test_package_setters(self):
        pkg = cr.Package()
        self.assertTrue(pkg)

        pkg.pkgId = "foo"
        self.assertEqual(pkg.pkgId, "foo")
        pkg.name = "bar"
        self.assertEqual(pkg.name, "bar")
        pkg.arch = "quantum"
        self.assertEqual(pkg.arch, "quantum")
        pkg.version = "11"
        self.assertEqual(pkg.version, "11")
        pkg.epoch = "22"
        self.assertEqual(pkg.epoch, "22")
        pkg.release = "33"
        self.assertEqual(pkg.release, "33")
        pkg.summary = "sum"
        self.assertEqual(pkg.summary, "sum")
        pkg.description = "desc"
        self.assertEqual(pkg.description, "desc")
        pkg.url = "http://foo"
        self.assertEqual(pkg.url, "http://foo")
        pkg.time_file = 111
        self.assertEqual(pkg.time_file, 111)
        pkg.time_build = 112
        self.assertEqual(pkg.time_build, 112)
        pkg.rpm_license = "EULA"
        self.assertEqual(pkg.rpm_license, "EULA")
        pkg.rpm_vendor = "Me"
        self.assertEqual(pkg.rpm_vendor, "Me")
        pkg.rpm_group = "a-team"
        self.assertEqual(pkg.rpm_group, "a-team")
        pkg.rpm_buildhost = "hal3000.space"
        self.assertEqual(pkg.rpm_buildhost, "hal3000.space")
        pkg.rpm_sourcerpm = "source.src.rpm"
        self.assertEqual(pkg.rpm_sourcerpm, "source.src.rpm")
        pkg.rpm_header_start = 1
        self.assertEqual(pkg.rpm_header_start, 1)
        pkg.rpm_header_end = 2
        self.assertEqual(pkg.rpm_header_end, 2)
        pkg.rpm_packager = "Arnold Rimmer"
        self.assertEqual(pkg.rpm_packager, "Arnold Rimmer")
        pkg.size_package = 33
        self.assertEqual(pkg.size_package, 33)
        pkg.size_installed = 44
        self.assertEqual(pkg.size_installed, 44)
        pkg.size_archive = 55
        self.assertEqual(pkg.size_archive, 55)
        pkg.location_href = "package/foo.rpm"
        self.assertEqual(pkg.location_href, "package/foo.rpm")
        pkg.location_base = "file://dir/"
        self.assertEqual(pkg.location_base, "file://dir/")
        pkg.checksum_type = "crc"
        self.assertEqual(pkg.checksum_type, "crc")

        pkg.requires = [('bar', 'GE', '1', '3.2.1', None, True)]
        self.assertEqual(pkg.requires,
                         [('bar', 'GE', '1', '3.2.1', None, True)])
        pkg.provides = [('foo', None, None, None, None, False)]
        self.assertEqual(pkg.provides,
                         [('foo', None, None, None, None, False)])
        pkg.conflicts = [('foobar', 'LT', '0', '1.0.0', None, False)]
        self.assertEqual(pkg.conflicts,
                         [('foobar', 'LT', '0', '1.0.0', None, False)])
        pkg.obsoletes = [('foobar', 'GE', '0', '1.1.0', None, False)]
        self.assertEqual(pkg.obsoletes,
                         [('foobar', 'GE', '0', '1.1.0', None, False)])
        pkg.suggests = [('foo_sug', 'GE', '0', '1.1.0', None, False)]
        self.assertEqual(pkg.suggests,
                         [('foo_sug', 'GE', '0', '1.1.0', None, False)])
        pkg.enhances = [('foo_enh', 'GE', '0', '1.1.0', None, False)]
        self.assertEqual(pkg.enhances,
                         [('foo_enh', 'GE', '0', '1.1.0', None, False)])
        pkg.recommends = [('foo_rec', 'GE', '0', '1.1.0', None, False)]
        self.assertEqual(pkg.recommends,
                         [('foo_rec', 'GE', '0', '1.1.0', None, False)])
        pkg.supplements = [('foo_sup', 'GE', '0', '1.1.0', None, False)]
        self.assertEqual(pkg.supplements,
                         [('foo_sup', 'GE', '0', '1.1.0', None, False)])
        pkg.files = [(None, '/foo/', 'bar')]
        self.assertEqual(pkg.files, [(None, '/foo/', 'bar')])
        pkg.changelogs = [('me', 123456, 'first commit')]
        self.assertEqual(pkg.changelogs, [('me', 123456, 'first commit')])

        self.assertEqual(pkg.nvra(), "bar-11-33.quantum")
        self.assertEqual(pkg.nevra(), "bar-22:11-33.quantum")