]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[2.7] bpo-12639: msilib.Directory.start_component() fails if *keyfile* is not None...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 31 May 2019 22:39:39 +0000 (15:39 -0700)
committerSteve Dower <steve.dower@python.org>
Fri, 31 May 2019 22:39:39 +0000 (15:39 -0700)
* bpo-12639: msilib.Directory.start_component() fails if *keyfile* is not None (GH-13688)

msilib.Directory.start_component() was passing an extra argument to CAB.gen_id().
(cherry picked from commit c8d5bf6c3fa09b43f6a5ee779d493d251dbcc53c)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Lib/msilib/__init__.py
Lib/test/test_msilib.py
Misc/NEWS.d/next/Library/2019-05-30-16-16-47.bpo-12639.TQFOR4.rst [new file with mode: 0644]

index 0352b60c0b2563b175dfe23d6fa9afd5061570e9..9520dfc021a08d13bf0144d2de928ebf0686b8b7 100644 (file)
@@ -276,7 +276,7 @@ class Directory:
         if Win64:
             flags |= 256
         if keyfile:
-            keyid = self.cab.gen_id(self.absolute, keyfile)
+            keyid = self.cab.gen_id(keyfile)
             self.keyfiles[keyfile] = keyid
         else:
             keyid = None
index a2f3943e22811987029b73c5f230a32dae0bdce2..58f709d70dcd937c6598f87faf367e9a54600ff4 100644 (file)
@@ -43,6 +43,14 @@ class MsiDatabaseTestCase(unittest.TestCase):
             sum_info = None
             unlink(db_path)
 
+    def test_directory_start_component_keyfile(self):
+        db, db_path = init_database()
+        feature = msilib.Feature(db, 0, 'Feature', 'A feature', 'Python')
+        cab = msilib.CAB('CAB')
+        dir = msilib.Directory(db, cab, None, TESTFN, 'TARGETDIR',
+                               'SourceDir', 0)
+        dir.start_component(None, feature, None, 'keyfile')
+
 
 class Test_make_id(unittest.TestCase):
     #http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx
diff --git a/Misc/NEWS.d/next/Library/2019-05-30-16-16-47.bpo-12639.TQFOR4.rst b/Misc/NEWS.d/next/Library/2019-05-30-16-16-47.bpo-12639.TQFOR4.rst
new file mode 100644 (file)
index 0000000..aade912
--- /dev/null
@@ -0,0 +1,2 @@
+:meth:`msilib.Directory.start_component()` no longer fails if *keyfile* is
+not ``None``.