diff options
| author | Daniel Watkins <daniel.watkins@canonical.com> | 2018-12-12 16:29:04 -0500 |
|---|---|---|
| committer | Daniel Watkins <daniel.watkins@canonical.com> | 2018-12-12 16:33:37 -0500 |
| commit | 2a90b40be34a92efca42e9d20c8fca16cd95fa02 (patch) | |
| tree | b98ed3e5f6d845f128539f7ea46c4951a2ae1268 | |
| parent | 08020d685665cbd44a64e38e4f4931097c113ac8 (diff) | |
Add __setitem__ to Manifestbugfix/kernels
This allows the kernel fixup code to modify the manifest settings after it has been created. (Currently it raises an exception.)
| -rw-r--r-- | test/test_manifestdiff.py | 21 | ||||
| -rw-r--r-- | ubuntu/cloudimage/mfdiff/manifest.py | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/test/test_manifestdiff.py b/test/test_manifestdiff.py index 3f6cfec..3d33731 100644 --- a/test/test_manifestdiff.py +++ b/test/test_manifestdiff.py @@ -126,3 +126,24 @@ class TestManifestDiff(object): assert added_packages == {'package2': '1.0', 'package3': '1.0'} assert removed_packages == {'package7': '1.0', 'package8': '1.0'} assert changed_packages == ['package4', 'package5'] + + def test_kernel_fixups(self, tmpdir): + package_list1 = [('linux-image-4.13.0-16-generic', '4.13.0-16.19')] + package_list2 = [('linux-image-4.13.0-25-generic', '4.13.0-25.29')] + + manifest_file1 = tmpdir.join('manifest1') + manifest_file2 = tmpdir.join('manifest2') + write_manifest_file(manifest_file1, package_list1) + write_manifest_file(manifest_file2, package_list2) + + manifest1 = Manifest(str(manifest_file1), 'bionic', 'amd64') + manifest2 = Manifest(str(manifest_file2), 'bionic', 'amd64') + diff = ManifestDiff(manifest1, manifest2) + + added_packages = diff.get_added() + removed_packages = diff.get_removed() + changed_packages = diff.get_changed() + + assert added_packages == {} + assert removed_packages == {} + assert changed_packages == ['linux-image-4.13.0-25-generic'] diff --git a/ubuntu/cloudimage/mfdiff/manifest.py b/ubuntu/cloudimage/mfdiff/manifest.py index 2ac24ba..6907ad8 100644 --- a/ubuntu/cloudimage/mfdiff/manifest.py +++ b/ubuntu/cloudimage/mfdiff/manifest.py @@ -36,6 +36,9 @@ class Manifest(object): def __getitem__(self, key): return self.dict[key] + def __setitem__(self, key, value): + self.dict[key] = value + def __delitem__(self, key): del self.dict[key] |
