Assorted code cleanups for readability. Greatly boosted the size of the
test data: this test fails on WIndows now if universal newlines are
enabled (which they aren't yet, by default). I don't know whether the
test will also fail on Linux now.
diff --git a/Lib/test/test_univnewlines.py b/Lib/test/test_univnewlines.py
index 8d6a874..8de9735 100644
--- a/Lib/test/test_univnewlines.py
+++ b/Lib/test/test_univnewlines.py
@@ -4,26 +4,32 @@
import os
import sys
-DATA_TEMPLATE=[
- "line1=1",
- "line2='this is a very long line designed to go past the magic " +
- "hundred character limit that is inside fileobject.c and which " +
- "is meant to speed up the common case, but we also want to test " +
- "the uncommon case, naturally.'",
- "def line3():pass"
- ]
-DATA_LF = "\n".join(DATA_TEMPLATE) + "\n"
-DATA_CR = "\r".join(DATA_TEMPLATE) + "\r"
-DATA_CRLF = "\r\n".join(DATA_TEMPLATE) + "\r\n"
-# Note that DATA_MIXED also tests the ability to recognize a lone \r
-# before end-of-file.
-DATA_MIXED = "\n".join(DATA_TEMPLATE) + "\r"
-DATA_SPLIT = map(lambda x: x+"\n", DATA_TEMPLATE)
-
if not hasattr(sys.stdin, 'newlines'):
raise test_support.TestSkipped, \
"This Python does not have universal newline support"
+FATX = 'x' * (2**14)
+
+DATA_TEMPLATE = [
+ "line1=1",
+ "line2='this is a very long line designed to go past the magic " +
+ "hundred character limit that is inside fileobject.c and which " +
+ "is meant to speed up the common case, but we also want to test " +
+ "the uncommon case, naturally.'",
+ "def line3():pass",
+ "line4 = '%s'" % FATX,
+ ]
+
+DATA_LF = "\n".join(DATA_TEMPLATE) + "\n"
+DATA_CR = "\r".join(DATA_TEMPLATE) + "\r"
+DATA_CRLF = "\r\n".join(DATA_TEMPLATE) + "\r\n"
+
+# Note that DATA_MIXED also tests the ability to recognize a lone \r
+# before end-of-file.
+DATA_MIXED = "\n".join(DATA_TEMPLATE) + "\r"
+DATA_SPLIT = [x + "\n" for x in DATA_TEMPLATE]
+del x
+
class TestGenericUnivNewlines(unittest.TestCase):
# use a class variable DATA to define the data to write to the file
# and a class variable NEWLINE to set the expected newlines value
@@ -74,33 +80,34 @@
self.assertEqual(data, DATA_SPLIT[1:])
def test_execfile(self):
- dict = {}
- execfile(test_support.TESTFN, dict)
- func = dict['line3']
+ namespace = {}
+ execfile(test_support.TESTFN, namespace)
+ func = namespace['line3']
self.assertEqual(func.func_code.co_firstlineno, 3)
+ self.assertEqual(namespace['line4'], FATX)
class TestNativeNewlines(TestGenericUnivNewlines):
- NEWLINE=None
- DATA=DATA_LF
- READMODE='r'
- WRITEMODE='w'
+ NEWLINE = None
+ DATA = DATA_LF
+ READMODE = 'r'
+ WRITEMODE = 'w'
class TestCRNewlines(TestGenericUnivNewlines):
- NEWLINE='\r'
- DATA=DATA_CR
+ NEWLINE = '\r'
+ DATA = DATA_CR
class TestLFNewlines(TestGenericUnivNewlines):
- NEWLINE='\n'
- DATA=DATA_LF
+ NEWLINE = '\n'
+ DATA = DATA_LF
class TestCRLFNewlines(TestGenericUnivNewlines):
- NEWLINE='\r\n'
- DATA=DATA_CRLF
+ NEWLINE = '\r\n'
+ DATA = DATA_CRLF
class TestMixedNewlines(TestGenericUnivNewlines):
- NEWLINE=('\r', '\n')
- DATA=DATA_MIXED
+ NEWLINE = ('\r', '\n')
+ DATA = DATA_MIXED
def test_main():