summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_msilib.py
diff options
context:
space:
mode:
authorTzu-ping Chung <uranusjr@gmail.com>2019-02-02 17:13:23 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2019-02-02 17:13:23 (GMT)
commit2de576e16d42ce43698d384d0dd46ba6cf165424 (patch)
treefc33745c8372fd578b3dbbdcdb35eec1fff77576 /Lib/test/test_msilib.py
parent05e922136a3286893bd489a8f2ecfa0dba4da368 (diff)
downloadcpython-2de576e16d42ce43698d384d0dd46ba6cf165424.zip
cpython-2de576e16d42ce43698d384d0dd46ba6cf165424.tar.gz
cpython-2de576e16d42ce43698d384d0dd46ba6cf165424.tar.bz2
bpo-1104: msilib.SummaryInfo.GetProperty() truncates the string by one character (GH-4517)
Add one char to MsiSummaryInfoGetProperty() output Based on the patch in bpo-1104 by Anthony Tuininga (atuining) and Mark McMahon (markm).
Diffstat (limited to 'Lib/test/test_msilib.py')
-rw-r--r--Lib/test/test_msilib.py27
1 files changed, 25 insertions, 2 deletions
diff --git a/Lib/test/test_msilib.py b/Lib/test/test_msilib.py
index 6d89ca4..4aa4753 100644
--- a/Lib/test/test_msilib.py
+++ b/Lib/test/test_msilib.py
@@ -1,5 +1,5 @@
""" Test suite for the code in msilib """
-import os.path
+import os
import unittest
from test.support import TESTFN, import_module, unlink
msilib = import_module('msilib')
@@ -42,6 +42,29 @@ class MsiDatabaseTestCase(unittest.TestCase):
)
self.addCleanup(unlink, db_path)
+ def test_summaryinfo_getproperty_issue1104(self):
+ db, db_path = init_database()
+ try:
+ sum_info = db.GetSummaryInformation(99)
+ title = sum_info.GetProperty(msilib.PID_TITLE)
+ self.assertEqual(title, b"Installation Database")
+
+ sum_info.SetProperty(msilib.PID_TITLE, "a" * 999)
+ title = sum_info.GetProperty(msilib.PID_TITLE)
+ self.assertEqual(title, b"a" * 999)
+
+ sum_info.SetProperty(msilib.PID_TITLE, "a" * 1000)
+ title = sum_info.GetProperty(msilib.PID_TITLE)
+ self.assertEqual(title, b"a" * 1000)
+
+ sum_info.SetProperty(msilib.PID_TITLE, "a" * 1001)
+ title = sum_info.GetProperty(msilib.PID_TITLE)
+ self.assertEqual(title, b"a" * 1001)
+ finally:
+ db = None
+ sum_info = None
+ os.unlink(db_path)
+
def test_database_open_failed(self):
with self.assertRaises(msilib.MSIError) as cm:
msilib.OpenDatabase('non-existent.msi', msilib.MSIDBOPEN_READONLY)
@@ -92,7 +115,7 @@ class Test_make_id(unittest.TestCase):
def test_invalid_any_char(self):
self.assertEqual(
msilib.make_id(".s\x82ort"), "_.s_ort")
- self.assertEqual (
+ self.assertEqual(
msilib.make_id(".s\x82o?*+rt"), "_.s_o___rt")