[Python-checkins] bpo-12639: msilib.Directory.start_component() fails if *keyfile* is not None (GH-13688)

Miss Islington (bot) webhook-mailer at python.org
Fri May 31 13:22:22 EDT 2019


https://github.com/python/cpython/commit/49fc57abf5fcf60129e460046d78c9bf20a19931
commit: 49fc57abf5fcf60129e460046d78c9bf20a19931
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2019-05-31T10:22:14-07:00
summary:

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 at gmail.com>

files:
A Misc/NEWS.d/next/Library/2019-05-30-16-16-47.bpo-12639.TQFOR4.rst
M Lib/msilib/__init__.py
M Lib/test/test_msilib.py

diff --git a/Lib/msilib/__init__.py b/Lib/msilib/__init__.py
index 8c5251d9baf8..0bc8dd995246 100644
--- a/Lib/msilib/__init__.py
+++ b/Lib/msilib/__init__.py
@@ -273,7 +273,7 @@ def start_component(self, component = None, feature = None, flags = None, keyfil
         if AMD64:
             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
diff --git a/Lib/test/test_msilib.py b/Lib/test/test_msilib.py
index 4aa4753fc2a6..265eaea59b5f 100644
--- a/Lib/test/test_msilib.py
+++ b/Lib/test/test_msilib.py
@@ -83,6 +83,15 @@ def test_get_property_vt_empty(self):
         db.Close()
         self.addCleanup(unlink, db_path)
 
+    def test_directory_start_component_keyfile(self):
+        db, db_path = init_database()
+        self.addCleanup(db.Close)
+        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
index 000000000000..aade9121b4bb
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-05-30-16-16-47.bpo-12639.TQFOR4.rst
@@ -0,0 +1,2 @@
+:meth:`msilib.Directory.start_component()` no longer fails if *keyfile* is
+not ``None``.



More information about the Python-checkins mailing list