summaryrefslogtreecommitdiff
diff options
authorDaniel Watkins <daniel.watkins@canonical.com>2018-12-12 16:29:04 -0500
committerDaniel Watkins <daniel.watkins@canonical.com>2018-12-12 16:33:37 -0500
commit2a90b40be34a92efca42e9d20c8fca16cd95fa02 (patch)
treeb98ed3e5f6d845f128539f7ea46c4951a2ae1268
parent08020d685665cbd44a64e38e4f4931097c113ac8 (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.py21
-rw-r--r--ubuntu/cloudimage/mfdiff/manifest.py3
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]