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_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_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
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_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
def test_parse_alternatives_with_no_alternative(self): depends = deps.parse_alternatives('python2.6') expected = deps.Relationship(name='python2.6') assert depends == expected