Ejemplo n.º 1
0
 def test_compare(self):
     ver1 = PackageVersion.from_string("6.3-31.5")
     ver2 = PackageVersion.from_string("13.9-16.12")
     self.assertLess(ver1, ver2)
     self.assertGreater(ver2, ver1)
     self.assertEqual(ver1, ver1)
     self.assertLess(ver1, "6.3-40")
     self.assertGreater(ver1, "6.3-31.4a")
Ejemplo n.º 2
0
    def test_get_from_string(self):
        ver = PackageVersion.from_string("1.0-22")
        self.assertEqual(0, ver.epoch)
        self.assertEqual(('1', '0'), ver.version)
        self.assertEqual(('22',), ver.release)

        ver2 = PackageVersion.from_string("1-11.0-2")
        self.assertEqual(1, ver2.epoch)
        self.assertEqual(('11', '0'), ver2.version)
        self.assertEqual(('2',), ver2.release)
Ejemplo n.º 3
0
 def test_compare(self):
     ver1 = PackageVersion.from_string("6.3-31.5")
     ver2 = PackageVersion.from_string("13.9-16.12")
     ver3 = PackageVersion.from_string("13.9")
     ver4 = PackageVersion.from_string("1:13.9")
     self.assertLess(ver1, ver2)
     self.assertGreater(ver2, ver1)
     self.assertEqual(ver1, ver1)
     self.assertLess(ver1, "6.3-40")
     self.assertGreater(ver1, "6.3-31.4a")
     self.assertEqual(ver2, ver3)
     self.assertGreater(ver4, ver3)
     self.assertGreater(ver4, ver2)
Ejemplo n.º 4
0
    def test_get_from_string(self):
        ver = PackageVersion.from_string("1.0-22")
        self.assertEqual(0, ver.epoch)
        self.assertEqual(('1', '0'), ver.version)
        self.assertEqual(('22',), ver.release)

        ver2 = PackageVersion.from_string("1:11.0-2")
        self.assertEqual(1, ver2.epoch)
        self.assertEqual(('11', '0'), ver2.version)
        self.assertEqual(('2',), ver2.release)

        ver3 = PackageVersion.from_string("11.0")
        self.assertEqual(0, ver3.epoch)
        self.assertEqual(('11', '0'), ver3.version)
        self.assertIsNone(ver3.release)
Ejemplo n.º 5
0
    def _unparse_version_attrs(attrs):
        """Gets the package version from attributes.

        :param attrs: the relation tag attributes
        :return: the PackageVersion object
        """

        return PackageVersion(attrs.get("epoch", 0), attrs.get("ver", "0.0"),
                              attrs.get("rel"))
Ejemplo n.º 6
0
    def _parse_package_relations(relations):
        """Parses yum package relations.

        :param relations: list of tuples
                          (name, flags, (epoch, version, release))
        :return: list of PackageRelation objects
        """
        return [
            PackageRelation(
                x[0],
                VersionRange(_OPERATORS_MAPPING[x[1]], x[1]
                             and PackageVersion(*x[2]))) for x in relations
        ]
Ejemplo n.º 7
0
 def load_package_from_file(self, repository, filepath):
     fullpath = utils.get_path_from_url(repository.url + filepath)
     _, size, checksum = next(
         iter(
             utils.get_size_and_checksum_for_files([fullpath],
                                                   _checksum_collector)))
     pkg = createrepo.yumbased.YumLocalPackage(filename=fullpath)
     hdr = pkg.returnLocalHeader()
     return Package(
         repository=repository,
         name=hdr["name"],
         version=PackageVersion(hdr['epoch'], hdr['version'],
                                hdr['release']),
         filesize=int(hdr['size']),
         filename=filepath,
         checksum=FileChecksum(*checksum),
         mandatory=False,
         requires=self._parse_package_relations(pkg.requires),
         obsoletes=self._parse_package_relations(pkg.obsoletes),
         provides=self._get_provides_from_rpm(pkg),
         group=hdr["group"],
     )