Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
f8d887e0
Commit
f8d887e0
authored
Mar 27, 2011
by
Martin v. Löwis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Closes #11696: Fix ID generation in msilib.
Patch by Mark Mc Mahon.
parent
92b60d55
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
51 additions
and
3 deletions
+51
-3
Lib/msilib/__init__.py
Lib/msilib/__init__.py
+2
-3
Lib/test/test_msilib.py
Lib/test/test_msilib.py
+46
-0
Misc/ACKS
Misc/ACKS
+1
-0
Misc/NEWS
Misc/NEWS
+2
-0
No files found.
Lib/msilib/__init__.py
View file @
f8d887e0
...
@@ -173,9 +173,8 @@ def add_tables(db, module):
...
@@ -173,9 +173,8 @@ def add_tables(db, module):
add_data
(
db
,
table
,
getattr
(
module
,
table
))
add_data
(
db
,
table
,
getattr
(
module
,
table
))
def
make_id
(
str
):
def
make_id
(
str
):
#str = str.replace(".", "_") # colons are allowed
identifier_chars
=
string
.
ascii_letters
+
string
.
digits
+
"._"
for
c
in
" -+~;"
:
str
=
""
.
join
([
c
if
c
in
identifier_chars
else
"_"
for
c
in
str
])
str
=
str
.
replace
(
c
,
"_"
)
if
str
[
0
]
in
(
string
.
digits
+
"."
):
if
str
[
0
]
in
(
string
.
digits
+
"."
):
str
=
"_"
+
str
str
=
"_"
+
str
assert
re
.
match
(
"^[A-Za-z_][A-Za-z0-9_.]*$"
,
str
),
"FILE"
+
str
assert
re
.
match
(
"^[A-Za-z_][A-Za-z0-9_.]*$"
,
str
),
"FILE"
+
str
...
...
Lib/test/test_msilib.py
0 → 100644
View file @
f8d887e0
""" Test suite for the code in msilib """
import
unittest
import
os
from
test.support
import
run_unittest
,
import_module
msilib
=
import_module
(
'msilib'
)
class
Test_make_id
(
unittest
.
TestCase
):
#http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx
"""The Identifier data type is a text string. Identifiers may contain the
ASCII characters A-Z (a-z), digits, underscores (_), or periods (.).
However, every identifier must begin with either a letter or an
underscore.
"""
def
test_is_no_change_required
(
self
):
self
.
assertEqual
(
msilib
.
make_id
(
"short"
),
"short"
)
self
.
assertEqual
(
msilib
.
make_id
(
"nochangerequired"
),
"nochangerequired"
)
self
.
assertEqual
(
msilib
.
make_id
(
"one.dot"
),
"one.dot"
)
self
.
assertEqual
(
msilib
.
make_id
(
"_"
),
"_"
)
self
.
assertEqual
(
msilib
.
make_id
(
"a"
),
"a"
)
#self.assertEqual(
# msilib.make_id(""), "")
def
test_invalid_first_char
(
self
):
self
.
assertEqual
(
msilib
.
make_id
(
"9.short"
),
"_9.short"
)
self
.
assertEqual
(
msilib
.
make_id
(
".short"
),
"_.short"
)
def
test_invalid_any_char
(
self
):
self
.
assertEqual
(
msilib
.
make_id
(
".s
\
x82
ort"
),
"_.s_ort"
)
self
.
assertEqual
(
msilib
.
make_id
(
".s
\
x82
o?*+rt"
),
"_.s_o___rt"
)
def
test_main
():
run_unittest
(
__name__
)
if
__name__
==
'__main__'
:
test_main
()
Misc/ACKS
View file @
f8d887e0
...
@@ -531,6 +531,7 @@ Chris McDonough
...
@@ -531,6 +531,7 @@ Chris McDonough
Greg McFarlane
Greg McFarlane
Alan McIntyre
Alan McIntyre
Michael McLay
Michael McLay
Mark Mc Mahon
Gordon McMillan
Gordon McMillan
Caolan McNamara
Caolan McNamara
Andrew McNamara
Andrew McNamara
...
...
Misc/NEWS
View file @
f8d887e0
...
@@ -44,6 +44,8 @@ Core and Builtins
...
@@ -44,6 +44,8 @@ Core and Builtins
Library
Library
-------
-------
- Issue #11696: Fix ID generation in msilib.
- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
trying to pack a negative (in-range) integer.
trying to pack a negative (in-range) integer.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment