Exemple #1
0
    def _load_requirements(self, requirements_data):
        if requirements_data is None:
            return

        self._validate_requirements_data(requirements_data)
        result = []
        for r in requirements_data:
            versions = r.get('versions', None)
            if versions is None:
                result.append(PackageRelation.from_args((r['name'],)))
            else:
                for version in versions:
                    result.append(PackageRelation.from_args(
                        ([r['name']] + version.split(None, 1))
                    ))
        return result
Exemple #2
0
    def _load_requirements(self, requirements_data):
        if requirements_data is None:
            return

        self._validate_requirements_data(requirements_data)
        result = []
        for r in requirements_data:
            versions = r.get('versions', None)
            if versions is None:
                result.append(PackageRelation.from_args((r['name'], )))
            else:
                for version in versions:
                    result.append(
                        PackageRelation.from_args(
                            ([r['name']] + version.split(None, 1))))
        return result
Exemple #3
0
 def test_iter(self):
     it = iter(
         PackageRelation.from_args(("test", "<=", 2), ("test2", ">=", 3)))
     self.assertEqual("test", next(it).name)
     self.assertEqual("test2", next(it).name)
     with self.assertRaises(StopIteration):
         next(it)
Exemple #4
0
 def test_iter(self):
     it = iter(PackageRelation.from_args(
         ("test", "<=", 2), ("test2", ">=", 3))
     )
     self.assertEqual("test", next(it).name)
     self.assertEqual("test2", next(it).name)
     with self.assertRaises(StopIteration):
         next(it)
Exemple #5
0
 def test_from_args(self):
     r = PackageRelation.from_args(("test", "<=", 2), ("test2", ),
                                   ("test3", ))
     self.assertEqual("test", r.name)
     self.assertEqual("<=", r.version.op)
     self.assertEqual(2, r.version.edge)
     self.assertEqual("test2", r.alternative.name)
     self.assertEqual(VersionRange(), r.alternative.version)
     self.assertEqual("test3", r.alternative.alternative.name)
     self.assertEqual(VersionRange(), r.alternative.alternative.version)
     self.assertIsNone(r.alternative.alternative.alternative)
Exemple #6
0
    def _parse_requirements(requirements):
        """Gets the list of relations from requirements.

        :param requirements: the list of requirement in next format:
                             'name [cmp version]|[alt [cmp version]]'
        """
        if requirements is not None:
            return set(
                PackageRelation.from_args(
                    *(x.split() for x in r.split("|"))) for r in requirements
            )
        return set()
Exemple #7
0
 def test_from_args(self):
     r = PackageRelation.from_args(
         ("test", "<=", 2), ("test2",), ("test3",)
     )
     self.assertEqual("test", r.name)
     self.assertEqual("<=", r.version.op)
     self.assertEqual(2, r.version.edge)
     self.assertEqual("test2", r.alternative.name)
     self.assertEqual(VersionRange(), r.alternative.version)
     self.assertEqual("test3", r.alternative.alternative.name)
     self.assertEqual(VersionRange(), r.alternative.alternative.version)
     self.assertIsNone(r.alternative.alternative.alternative)
    def _get_relations(self, dpkg, *names):
        """Gets the package relations.

        :param dpkg: the debian-package object
        :type dpkg: deb822.Packages
        :param names: the relation names
        :return: the list of PackageRelation objects
        """
        relations = list()
        for name in names:
            for variants in dpkg.relations[name]:
                relation = PackageRelation.from_args(
                    *(self._unparse_relation(v) for v in variants))
                if relation is not None:
                    relations.append(relation)
        return relations
Exemple #9
0
    def _get_relations(self, dpkg, *names):
        """Gets the package relations.

        :param dpkg: the debian-package object
        :type dpkg: deb822.Packages
        :param names: the relation names
        :return: the list of PackageRelation objects
        """
        relations = list()
        for name in names:
            for variants in dpkg.relations[name]:
                relation = PackageRelation.from_args(
                    *(self._unparse_relation(v) for v in variants)
                )
                if relation is not None:
                    relations.append(relation)
        return relations
Exemple #10
0
    def _get_relations(self, pkg_tag, name):
        """Gets package relations by name from package tag.

        :param pkg_tag: the xml-tag with package description
        :param name: the relations name
        :return: list of PackageRelation objects
        """
        relations = list()
        append = relations.append
        tags_iter = pkg_tag.iterfind("./main:format/rpm:%s/rpm:entry" % name,
                                     _NAMESPACES)
        for elem in tags_iter:
            append(
                PackageRelation.from_args(
                    self._unparse_relation_attrs(elem.attrib)))

        return relations
Exemple #11
0
    def _get_relations(self, pkg_tag, name):
        """Gets package relations by name from package tag.

        :param pkg_tag: the xml-tag with package description
        :param name: the relations name
        :return: list of PackageRelation objects
        """
        relations = list()
        append = relations.append
        tags_iter = pkg_tag.iterfind(
            "./main:format/rpm:%s/rpm:entry" % name,
            _NAMESPACES
        )
        for elem in tags_iter:
            append(PackageRelation.from_args(
                self._unparse_relation_attrs(elem.attrib)
            ))

        return relations