Skip to content

Commit d78e931

Browse files
committed
Unresolved symbol reference in 2.4.3 release was masked by stdout buffering in unit tests
1 parent 89be5c8 commit d78e931

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

CHANGES

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
Change Log
33
==========
44

5+
Version 2.4.4 - November, 2019
6+
--------------------------------
7+
- Unresolved symbol reference in 2.4.3 release was masked by stdout
8+
buffering in unit tests, thanks for the prompt heads-up, Ned Batchelder!
9+
10+
511
Version 2.4.3 - November, 2019
612
------------------------------
713
- Fixed a bug in ParserElement.__eq__ that would for some parsers

pyparsing.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@
9595
namespace class
9696
"""
9797

98-
__version__ = "2.4.3"
99-
__versionTime__ = "21 Oct 2019 23:43 UTC"
98+
__version__ = "2.4.4"
99+
__versionTime__ = "05 Nov 2019 14:15 UTC"
100100
__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>"
101101

102102
import string
@@ -5517,7 +5517,7 @@ def oneOf(strs, caseless=False, useRegex=True, asKeyword=False):
55175517
# ~ print (strs, "->", "|".join([_escapeRegexChars(sym) for sym in symbols]))
55185518
try:
55195519
if len(symbols) == len("".join(symbols)):
5520-
return Regex("[%s]" % "".join(_collapseAndEscapeRegexRangeChars(sym) for sym in symbols)).setName(' | '.join(symbols))
5520+
return Regex("[%s]" % "".join(_escapeRegexRangeChars(sym) for sym in symbols)).setName(' | '.join(symbols))
55215521
else:
55225522
return Regex("|".join(re.escape(sym) for sym in symbols)).setName(' | '.join(symbols))
55235523
except Exception:

unitTests.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ def __exit__(self, *args):
8585
class ParseTestCase(TestCase):
8686
def __init__(self):
8787
super(ParseTestCase, self).__init__(methodName='_runTest')
88+
self.expect_traceback = False
89+
self.expect_warning = False
8890

8991
def _runTest(self):
9092

@@ -103,6 +105,12 @@ def _runTest(self):
103105
print_("<<<< End of test",str(self))
104106
print_()
105107

108+
output = buffered_stdout.getvalue()
109+
if "Traceback" in output and not self.expect_traceback:
110+
raise Exception("traceback in stdout")
111+
if "Warning" in output and not self.expect_warning:
112+
raise Exception("warning in stdout")
113+
106114
except Exception as exc:
107115
if BUFFER_OUTPUT:
108116
print_()
@@ -1247,6 +1255,8 @@ def runTest(self):
12471255

12481256
class CustomQuotesTest(ParseTestCase):
12491257
def runTest(self):
1258+
self.expect_warning = True
1259+
12501260
from pyparsing import QuotedString
12511261

12521262
testString = r"""
@@ -1861,6 +1871,7 @@ def runTest(self):
18611871

18621872
class ParseUsingRegex(ParseTestCase):
18631873
def runTest(self):
1874+
self.expect_warning = True
18641875

18651876
import re
18661877

@@ -1963,6 +1974,7 @@ def runTest(self):
19631974

19641975
class RegexSubTest(ParseTestCase):
19651976
def runTest(self):
1977+
self.expect_warning = True
19661978
import pyparsing as pp
19671979

19681980
print_("test sub with string")
@@ -3963,6 +3975,8 @@ def runTest(self):
39633975

39643976
class ParseActionExceptionTest(ParseTestCase):
39653977
def runTest(self):
3978+
self.expect_traceback = True
3979+
39663980
import pyparsing as pp
39673981
import traceback
39683982

@@ -4614,6 +4628,8 @@ def runTest(self):
46144628
" ungrouped named expressions"):
46154629
path = coord[...].setResultsName('path')
46164630

4631+
pp.__diag__.warn_ungrouped_named_tokens_in_collection = False
4632+
46174633

46184634
class WarnNameSetOnEmptyForwardTest(ParseTestCase):
46194635
"""
@@ -4715,6 +4731,7 @@ def runTest(self):
47154731

47164732
class MiscellaneousParserTests(ParseTestCase):
47174733
def runTest(self):
4734+
self.expect_warning = True
47184735

47194736
runtests = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
47204737
if IRON_PYTHON_ENV:

0 commit comments

Comments
 (0)