diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2017-11-23 12:47:30 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-23 12:47:30 (GMT) |
commit | bdb8315c21825487b54852ff0511fb4881ea2181 (patch) | |
tree | 4eed171f1a04b3742b63d4a2d34cd5ef063ff139 /Lib/test/test_msilib.py | |
parent | 5ce1069a6ff0d5443074d33ba1d403ccd2eaf3d3 (diff) | |
download | cpython-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.py | 41 |
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 |