Beispiel #1
0
 def test_relationship_parsing(self):
     relationship_set = deps.parse_depends('foo, bar (>= 1) | baz')
     expected = deps.AndRelationships(
         relationships=(deps.Relationship(name='foo'),
                        deps.OrRelationships(
                            relationships=(deps.VersionedRelationship(
                                name='bar', operator='>=', version='1'),
                                           deps.Relationship(name='baz')))))
     assert relationship_set == expected
Beispiel #2
0
    def test_relationships_objects_as_strings(self):
        def strip(text):
            return re.sub(r'\s+', '', text)

        relationship_set = deps.parse_depends('foo, bar(>=1)|baz[i386]')
        expected = 'foo, bar (>= 1) | baz [i386]'
        assert str(relationship_set) == expected

        expected = deps.AndRelationships(relationships=(
            deps.Relationship(name='foo'),
            deps.OrRelationships(relationships=(
                deps.VersionedRelationship(
                    name='bar', operator='>=', version='1'),
                deps.Relationship(name='baz', architectures=('i386', ))))))
        assert relationship_set == expected
Beispiel #3
0
 def test_parse_relationship(self):
     rel = deps.parse_relationship('python')
     assert rel == deps.Relationship(name='python')
     rel = deps.parse_relationship('python (<< 3)')
     assert rel == deps.VersionedRelationship(name='python',
                                              operator='<<',
                                              version='3')
Beispiel #4
0
 def test_parse_control_fields_1(self):
     deb822_package = debcon.Debian822([
         ('Package', 'python-py2deb'),
         ('Depends', 'python-deb-pkg-tools, python-pip, python-pip-accel'),
         ('Installed-Size', '42'),
     ])
     parsed_info = debcon.parse_control_fields(deb822_package)
     expected = {
         'Package':
         'python-py2deb',
         'Depends':
         deps.AndRelationships(
             (deps.Relationship(name=u'python-deb-pkg-tools'),
              deps.Relationship(name=u'python-pip'),
              deps.Relationship(name=u'python-pip-accel'))),
         'Installed-Size':
         42
     }
     assert parsed_info == expected
Beispiel #5
0
    def test_parse_control_fields_2(self):
        unparsed_fields = debcon.Debian822.from_string('''
Package: python3.4-minimal
Version: 3.4.0-1+precise1
Architecture: amd64
Installed-Size: 3586
Pre-Depends: libc6 (>= 2.15)
Depends: libpython3.4-minimal (= 3.4.0-1+precise1), libexpat1 (>= 1.95.8), libgcc1 (>= 1:4.1.1), zlib1g (>= 1:1.2.0), foo | bar
Recommends: python3.4
Suggests: binfmt-support
Conflicts: binfmt-support (<< 1.1.2)
''')

        expected = {
            'Architecture':
            'amd64',
            'Conflicts':
            'binfmt-support (<< 1.1.2)',
            'Depends':
            'libpython3.4-minimal (= 3.4.0-1+precise1), libexpat1 (>= 1.95.8), '
            'libgcc1 (>= 1:4.1.1), zlib1g (>= 1:1.2.0), foo | bar',
            'Installed-Size':
            '3586',
            'Package':
            'python3.4-minimal',
            'Pre-Depends':
            'libc6 (>= 2.15)',
            'Recommends':
            'python3.4',
            'Suggests':
            'binfmt-support',
            'Version':
            '3.4.0-1+precise1',
        }

        assert unparsed_fields.to_dict(normalize_names=True) == expected

        parsed_fields = debcon.parse_control_fields(unparsed_fields)

        expected = {
            'Architecture':
            'amd64',
            'Conflicts':
            deps.AndRelationships(relationships=(deps.VersionedRelationship(
                name=u'binfmt-support', operator=u'<<', version=u'1.1.2'), )),
            'Depends':
            deps.AndRelationships(
                relationships=(deps.VersionedRelationship(
                    name=u'libpython3.4-minimal',
                    operator=u'=',
                    version=u'3.4.0-1+precise1'),
                               deps.VersionedRelationship(name=u'libexpat1',
                                                          operator=u'>=',
                                                          version=u'1.95.8'),
                               deps.VersionedRelationship(name=u'libgcc1',
                                                          operator=u'>=',
                                                          version=u'1:4.1.1'),
                               deps.VersionedRelationship(name=u'zlib1g',
                                                          operator=u'>=',
                                                          version=u'1:1.2.0'),
                               deps.OrRelationships(relationships=(
                                   deps.Relationship(name=u'foo'),
                                   deps.Relationship(name=u'bar'),
                               ))), ),
            'Installed-Size':
            3586,
            'Package':
            'python3.4-minimal',
            'Pre-Depends':
            deps.AndRelationships(relationships=(deps.VersionedRelationship(
                name=u'libc6', operator=u'>=', version=u'2.15'), )),
            'Recommends':
            deps.AndRelationships(relationships=(deps.Relationship(
                name=u'python3.4'), )),
            'Suggests':
            deps.AndRelationships(relationships=(deps.Relationship(
                name=u'binfmt-support'), )),
            'Version':
            '3.4.0-1+precise1'
        }

        assert parsed_fields == expected
Beispiel #6
0
 def test_parse_alternatives(self):
     depends = deps.parse_alternatives('python2.6 | python2.7')
     expected = deps.OrRelationships(relationships=(deps.Relationship(
         name='python2.6'), deps.Relationship(name='python2.7')))
     assert depends == expected
Beispiel #7
0
 def test_parse_alternatives_with_no_alternative(self):
     depends = deps.parse_alternatives('python2.6')
     expected = deps.Relationship(name='python2.6')
     assert depends == expected