bpo-1104: msilib.SummaryInfo.GetProperty() truncates the string by on… · python/cpython@56f8411
11""" Test suite for the code in msilib """
2-import os.path
2+import os
33import unittest
44from test.support import TESTFN, import_module, unlink
55msilib = import_module('msilib')
@@ -42,6 +42,29 @@ def test_view_fetch_returns_none(self):
4242 )
4343self.addCleanup(unlink, db_path)
444445+def test_summaryinfo_getproperty_issue1104(self):
46+db, db_path = init_database()
47+try:
48+sum_info = db.GetSummaryInformation(99)
49+title = sum_info.GetProperty(msilib.PID_TITLE)
50+self.assertEqual(title, b"Installation Database")
51+52+sum_info.SetProperty(msilib.PID_TITLE, "a" * 999)
53+title = sum_info.GetProperty(msilib.PID_TITLE)
54+self.assertEqual(title, b"a" * 999)
55+56+sum_info.SetProperty(msilib.PID_TITLE, "a" * 1000)
57+title = sum_info.GetProperty(msilib.PID_TITLE)
58+self.assertEqual(title, b"a" * 1000)
59+60+sum_info.SetProperty(msilib.PID_TITLE, "a" * 1001)
61+title = sum_info.GetProperty(msilib.PID_TITLE)
62+self.assertEqual(title, b"a" * 1001)
63+finally:
64+db = None
65+sum_info = None
66+os.unlink(db_path)
67+4568def test_database_open_failed(self):
4669with self.assertRaises(msilib.MSIError) as cm:
4770msilib.OpenDatabase('non-existent.msi', msilib.MSIDBOPEN_READONLY)
@@ -92,7 +115,7 @@ def test_invalid_first_char(self):
92115def test_invalid_any_char(self):
93116self.assertEqual(
94117msilib.make_id(".s\x82ort"), "_.s_ort")
95-self.assertEqual (
118+self.assertEqual(
96119msilib.make_id(".s\x82o?*+rt"), "_.s_o___rt")
9712098121