From: Berker Peksag Date: Fri, 24 Nov 2017 16:04:40 +0000 (+0300) Subject: [3.6] bpo-12239: Make GetProperty() return None for VT_EMPTY (GH-4539) X-Git-Tag: v3.6.4rc1~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=412f00b839eae2bc07ca08a8e615c3d7dc870646;p=python [3.6] bpo-12239: Make GetProperty() return None for VT_EMPTY (GH-4539) The previous behavior was to raise an exception NotImplementedError: result of type 0 when the value of the property is VT_EMPTY. (cherry picked from commit 19fb134185ce155bc53f517116fca73093ba55e9) --- diff --git a/Lib/test/test_msilib.py b/Lib/test/test_msilib.py index eb2c76e69d..fec435e05b 100644 --- a/Lib/test/test_msilib.py +++ b/Lib/test/test_msilib.py @@ -52,6 +52,13 @@ class MsiDatabaseTestCase(unittest.TestCase): msilib.OpenDatabase(db_path, msilib.MSIDBOPEN_CREATE) self.assertEqual(str(cm.exception), 'create failed') + def test_get_property_vt_empty(self): + db, db_path = init_database() + summary = db.GetSummaryInformation(0) + self.assertIsNone(summary.GetProperty(msilib.PID_SECURITY)) + del db + self.addCleanup(unlink, db_path) + 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/2017-11-24-14-07-55.bpo-12239.Nj3A0x.rst b/Misc/NEWS.d/next/Library/2017-11-24-14-07-55.bpo-12239.Nj3A0x.rst new file mode 100644 index 0000000000..20d94779e4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-11-24-14-07-55.bpo-12239.Nj3A0x.rst @@ -0,0 +1,2 @@ +Make :meth:`msilib.SummaryInformation.GetProperty` return ``None`` when the +value of property is ``VT_EMPTY``. Initial patch by Mark Mc Mahon. diff --git a/PC/_msi.c b/PC/_msi.c index 00755d6375..a7c8fa3d09 100644 --- a/PC/_msi.c +++ b/PC/_msi.c @@ -578,6 +578,8 @@ summary_getproperty(msiobj* si, PyObject *args) if (sval != sbuf) free(sval); return result; + case VT_EMPTY: + Py_RETURN_NONE; } PyErr_Format(PyExc_NotImplementedError, "result of type %d", type); return NULL;