]> granicus.if.org Git - python/commitdiff
Cross platform unittest.TestResult newline handling when buffering stdout / stderr.
authorMichael Foord <fuzzyman@voidspace.org.uk>
Sat, 3 Apr 2010 02:21:39 +0000 (02:21 +0000)
committerMichael Foord <fuzzyman@voidspace.org.uk>
Sat, 3 Apr 2010 02:21:39 +0000 (02:21 +0000)
Lib/unittest/result.py
Lib/unittest/test/test_result.py

index 5cab30e688d458366237f70f9e4868a8a92116d4..b9045f4b07220fa4794110d04939307f2eedf751 100644 (file)
@@ -19,9 +19,8 @@ def failfast(method):
         return method(self, *args, **kw)
     return inner
 
-NEWLINE = os.linesep
-STDOUT_LINE = '%sStdout:%s%%s' % (NEWLINE, NEWLINE)
-STDERR_LINE = '%sStderr:%s%%s' % (NEWLINE, NEWLINE)
+STDOUT_LINE = '\nStdout:\n%s'
+STDERR_LINE = '\nStderr:\n%s'
 
 
 class TestResult(object):
@@ -77,12 +76,12 @@ class TestResult(object):
                 output = sys.stdout.getvalue()
                 error = sys.stderr.getvalue()
                 if output:
-                    if not output.endswith(NEWLINE):
-                        output += NEWLINE
+                    if not output.endswith('\n'):
+                        output += '\n'
                     self._original_stdout.write(STDOUT_LINE % output)
                 if error:
-                    if not error.endswith(NEWLINE):
-                        error += NEWLINE
+                    if not error.endswith('\n'):
+                        error += '\n'
                     self._original_stderr.write(STDERR_LINE % error)
 
             sys.stdout = self._original_stdout
@@ -158,12 +157,12 @@ class TestResult(object):
             output = sys.stdout.getvalue()
             error = sys.stderr.getvalue()
             if output:
-                if not output.endswith(NEWLINE):
-                    output += NEWLINE
+                if not output.endswith('\n'):
+                    output += '\n'
                 msgLines.append(STDOUT_LINE % output)
             if error:
-                if not error.endswith(NEWLINE):
-                    error += NEWLINE
+                if not error.endswith('\n'):
+                    error += '\n'
                 msgLines.append(STDERR_LINE % error)
         return ''.join(msgLines)
 
index c02b8efab213854e1a4852a14016131d3ec8b129..7a1f65af1c45f11ce6e656c2b3d744aa98693a2c 100644 (file)
@@ -1,3 +1,4 @@
+import os
 import sys
 import textwrap
 from cStringIO import StringIO, OutputType
@@ -413,8 +414,8 @@ class TestOutputBuffering(unittest.TestCase):
         print 'foo'
         print >> sys.stderr, 'bar'
 
-        self.assertEqual(out_stream.getvalue(), 'foo\n')
-        self.assertEqual(err_stream.getvalue(), 'bar\n')
+        self.assertEqual(out_stream.getvalue(), 'foo%s' % os.linesep)
+        self.assertEqual(err_stream.getvalue(), 'bar%s' % os.linesep)
 
         self.assertEqual(result._original_stdout.getvalue(), '')
         self.assertEqual(result._original_stderr.getvalue(), '')
@@ -467,13 +468,13 @@ class TestOutputBuffering(unittest.TestCase):
             expectedOutMessage = textwrap.dedent("""
                 Stdout:
                 foo
-            """)
+            """).replace('\n', os.linesep)
             expectedErrMessage = ''
             if include_error:
                 expectedErrMessage = textwrap.dedent("""
                 Stderr:
                 bar
-            """)
+            """).replace('\n', os.linesep)
             expectedFullMessage = 'None\n%s%s' % (expectedOutMessage, expectedErrMessage)
 
             self.assertIs(test, self)