summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_msilib.py
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2017-11-24 09:53:58 (GMT)
committerGitHub <noreply@github.com>2017-11-24 09:53:58 (GMT)
commit4864a619dc1cc9092780ccf5a6327e8abf66133d (patch)
tree379ff96504c78c9bd6d05d6c768c3e6cf16ee3a1 /Lib/test/test_msilib.py
parentcdfe910e746e1d0fc43429b8cc3384a65a19b358 (diff)
downloadcpython-4864a619dc1cc9092780ccf5a6327e8abf66133d.zip
cpython-4864a619dc1cc9092780ccf5a6327e8abf66133d.tar.gz
cpython-4864a619dc1cc9092780ccf5a6327e8abf66133d.tar.bz2
bpo-12382: Make OpenDatabase() raise better exception messages (GH-4528)
Previously, 'msilib.OpenDatabase()' function raised a cryptical exception message when it couldn't open or create an MSI file. For example: Traceback (most recent call last): File "<stdin>", line 1, in <module> _msi.MSIError: unknown error 6e
Diffstat (limited to 'Lib/test/test_msilib.py')
-rw-r--r--Lib/test/test_msilib.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/test_msilib.py b/Lib/test/test_msilib.py
index 65ff386..4093134 100644
--- a/Lib/test/test_msilib.py
+++ b/Lib/test/test_msilib.py
@@ -1,4 +1,5 @@
""" Test suite for the code in msilib """
+import os.path
import unittest
from test.support import TESTFN, import_module, unlink
msilib = import_module('msilib')
@@ -41,6 +42,17 @@ class MsiDatabaseTestCase(unittest.TestCase):
)
self.addCleanup(unlink, db_path)
+ def test_database_open_failed(self):
+ with self.assertRaises(msilib.MSIError) as cm:
+ msilib.OpenDatabase('non-existent.msi', msilib.MSIDBOPEN_READONLY)
+ self.assertEqual(str(cm.exception), 'open failed')
+
+ def test_database_create_failed(self):
+ db_path = os.path.join(TESTFN, 'test.msi')
+ with self.assertRaises(msilib.MSIError) as cm:
+ msilib.OpenDatabase(db_path, msilib.MSIDBOPEN_CREATE)
+ self.assertEqual(str(cm.exception), 'create failed')
+
class Test_make_id(unittest.TestCase):
#http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx