bpo-12639: msilib.Directory.start_component() fails if keyfile is n… · python/cpython@c8d5bf6 (original) (raw)

3 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -273,7 +273,7 @@ def start_component(self, component = None, feature = None, flags = None, keyfil
273 273 if AMD64:
274 274 flags |= 256
275 275 if keyfile:
276 -keyid = self.cab.gen_id(self.absolute, keyfile)
276 +keyid = self.cab.gen_id(keyfile)
277 277 self.keyfiles[keyfile] = keyid
278 278 else:
279 279 keyid = None
Original file line number Diff line number Diff line change
@@ -83,6 +83,15 @@ def test_get_property_vt_empty(self):
83 83 db.Close()
84 84 self.addCleanup(unlink, db_path)
85 85
86 +def test_directory_start_component_keyfile(self):
87 +db, db_path = init_database()
88 +self.addCleanup(db.Close)
89 +feature = msilib.Feature(db, 0, 'Feature', 'A feature', 'Python')
90 +cab = msilib.CAB('CAB')
91 +dir = msilib.Directory(db, cab, None, TESTFN, 'TARGETDIR',
92 +'SourceDir', 0)
93 +dir.start_component(None, feature, None, 'keyfile')
94 +
86 95
87 96 class Test_make_id(unittest.TestCase):
88 97 #http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1 +:meth:`msilib.Directory.start_component()` no longer fails if *keyfile* is
2 +not ``None``.