diff options
| author | Daniel Watkins <daniel.watkins@canonical.com> | 2018-06-08 15:54:55 -0700 |
|---|---|---|
| committer | Daniel Watkins <daniel.watkins@canonical.com> | 2018-06-08 15:58:29 -0700 |
| commit | 96654736bbffc827f85a84afaf866328238c1a8d (patch) | |
| tree | 2ecc76f8216d73c7b60448bb9e97166a03d929b1 | |
| parent | 9f40fad110cc3d89067060b705de1b4f7111b164 (diff) | |
Skip snap lines in manifests
This will allow us to introduce them in to manifest generation without causing manifest diffing to fail. We will need to support this in the future.
| -rwxr-xr-x | mfdiff.py | 3 | ||||
| -rw-r--r-- | tests.py | 42 |
2 files changed, 45 insertions, 0 deletions
@@ -166,6 +166,9 @@ def manifest_to_dict(filename): logging.debug('Reading package manifest from %s', filename) with open(filename, "r") as manifest: for line in manifest: + if line.startswith('snap:'): + # XXX: Introduce support for snap packages + continue (pkg, ver) = line.split() ret[pkg] = ver return ret @@ -1,9 +1,51 @@ import mfdiff +def _deb_package_line(package_name, package_version): + """Format a deb package manifest line""" + return '\t'.join([package_name, package_version]) + + +def _snap_package_line(snap_name, snap_channel, snap_version): + """Format a snap package manifest line""" + return '\t'.join( + ['snap:{}'.format(snap_name), snap_channel, snap_version]) + + + class TestManifestToDict(object): def test_empty_file_returns_empty_dict(self, tmpdir): manifest_file = tmpdir.join('manifest') manifest_file.write('') assert mfdiff.manifest_to_dict(str(manifest_file)) == {} + + def test_single_package(self, tmpdir): + package_name, package_version = 'package_name', '1.0-0ubuntu1' + manifest_file = tmpdir.join('manifest') + manifest_file.write(_deb_package_line(package_name, package_version)) + assert mfdiff.manifest_to_dict(str(manifest_file)) == { + package_name: package_version, + } + + def test_snaps_are_skipped(self, tmpdir): + package_name, package_version = 'package_name', '1.0-0ubuntu1' + manifest_file = tmpdir.join('manifest') + manifest_file.write('\n'.join([ + _deb_package_line(package_name, package_version), + _snap_package_line('snap_name', 'snap_channel', 'snap_version') + ])) + assert mfdiff.manifest_to_dict(str(manifest_file)) == { + package_name: package_version, + } + + def test_deb_packages_starting_with_snap_arent_skipped(self, tmpdir): + package_name, package_version = 'snapd', '1.0-0ubuntu1' + manifest_file = tmpdir.join('manifest') + manifest_file.write('\n'.join([ + _deb_package_line(package_name, package_version), + _snap_package_line('snap_name', 'snap_channel', 'snap_version') + ])) + assert mfdiff.manifest_to_dict(str(manifest_file)) == { + package_name: package_version, + } |
