""" Test suite for the code in msilib """
+import os.path
import unittest
from test.support import TESTFN, import_module, unlink
msilib = import_module('msilib')
)
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
case ERROR_INVALID_PARAMETER:
PyErr_SetString(MSIError, "invalid parameter");
return NULL;
+ case ERROR_OPEN_FAILED:
+ PyErr_SetString(MSIError, "open failed");
+ return NULL;
+ case ERROR_CREATE_FAILED:
+ PyErr_SetString(MSIError, "create failed");
+ return NULL;
default:
PyErr_Format(MSIError, "unknown error %x", status);
return NULL;