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

33

import unittest

44

from test.support import TESTFN, import_module, unlink

55

msilib = import_module('msilib')

@@ -42,6 +42,29 @@ def test_view_fetch_returns_none(self):

4242

)

4343

self.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+4568

def test_database_open_failed(self):

4669

with self.assertRaises(msilib.MSIError) as cm:

4770

msilib.OpenDatabase('non-existent.msi', msilib.MSIDBOPEN_READONLY)

@@ -92,7 +115,7 @@ def test_invalid_first_char(self):

92115

def test_invalid_any_char(self):

93116

self.assertEqual(

94117

msilib.make_id(".s\x82ort"), "_.s_ort")

95-

self.assertEqual (

118+

self.assertEqual(

96119

msilib.make_id(".s\x82o?*+rt"), "_.s_o___rt")

9712098121