def test_parse_depends(self): depends = deps.parse_depends('python (>= 2.6), python (<< 3)') expected = deps.AndRelationships( relationships=(deps.VersionedRelationship( name='python', operator='>=', version='2.6'), deps.VersionedRelationship( name='python', operator='<<', version='3'))) assert depends == expected assert not depends.matches('python', '2.5') assert depends.matches('python', '2.6') assert depends.matches('python', '2.7')
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')
def test_parse_depends_misc(self): dependencies = deps.parse_depends( 'python (>= 2.6), python (<< 3) | python (>= 3.4)') expected = deps.AndRelationships(relationships=( deps.VersionedRelationship( name='python', operator='>=', version='2.6'), deps.OrRelationships(relationships=( deps.VersionedRelationship( name='python', operator='<<', version='3'), deps.VersionedRelationship( name='python', operator='>=', version='3.4'), )), )) assert dependencies == expected expected = 'python (>= 2.6), python (<< 3) | python (>= 3.4)' assert str(dependencies) == expected
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
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
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
def test_relationship_parsing_single_relationship(self): expected = deps.AndRelationships( relationships=(deps.VersionedRelationship( name='foo', operator='=', version='1.0'), )) assert deps.parse_depends('foo (=1.0)') == expected