summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_msilib.py
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2017-11-23 12:47:30 (GMT)
committerGitHub <noreply@github.com>2017-11-23 12:47:30 (GMT)
commitbdb8315c21825487b54852ff0511fb4881ea2181 (patch)
tree4eed171f1a04b3742b63d4a2d34cd5ef063ff139 /Lib/test/test_msilib.py
parent5ce1069a6ff0d5443074d33ba1d403ccd2eaf3d3 (diff)
downloadcpython-bdb8315c21825487b54852ff0511fb4881ea2181.zip
cpython-bdb8315c21825487b54852ff0511fb4881ea2181.tar.gz
cpython-bdb8315c21825487b54852ff0511fb4881ea2181.tar.bz2
bpo-1102: View.Fetch() now returns None when it's exhausted (GH-4459)
Diffstat (limited to 'Lib/test/test_msilib.py')
-rw-r--r--Lib/test/test_msilib.py41
1 files changed, 40 insertions, 1 deletions
diff --git a/Lib/test/test_msilib.py b/Lib/test/test_msilib.py
index f656f72..65ff386 100644
--- a/Lib/test/test_msilib.py
+++ b/Lib/test/test_msilib.py
@@ -1,7 +1,46 @@
""" Test suite for the code in msilib """
import unittest
-from test.support import import_module
+from test.support import TESTFN, import_module, unlink
msilib = import_module('msilib')
+import msilib.schema
+
+
+def init_database():
+ path = TESTFN + '.msi'
+ db = msilib.init_database(
+ path,
+ msilib.schema,
+ 'Python Tests',
+ 'product_code',
+ '1.0',
+ 'PSF',
+ )
+ return db, path
+
+
+class MsiDatabaseTestCase(unittest.TestCase):
+
+ def test_view_fetch_returns_none(self):
+ db, db_path = init_database()
+ properties = []
+ view = db.OpenView('SELECT Property, Value FROM Property')
+ view.Execute(None)
+ while True:
+ record = view.Fetch()
+ if record is None:
+ break
+ properties.append(record.GetString(1))
+ view.Close()
+ db.Close()
+ self.assertEqual(
+ properties,
+ [
+ 'ProductName', 'ProductCode', 'ProductVersion',
+ 'Manufacturer', 'ProductLanguage',
+ ]
+ )
+ self.addCleanup(unlink, db_path)
+
class Test_make_id(unittest.TestCase):
#http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx