summaryrefslogtreecommitdiff
path: root/tests/view_tests
diff options
context:
space:
mode:
authorShai Berger <shai.berger@healarium.com>2013-05-18 19:26:34 +0300
committerShai Berger <shai.berger@healarium.com>2013-05-18 19:30:03 +0300
commitff881aef536640d712fd2bc53fa1ff98e300adad (patch)
tree9a1a2c7870e333118a544aae2c5bc69158b87768 /tests/view_tests
parent2c84f4434cd0f6e74471d5737b049c648cff538f (diff)
Fixed #13958 -- problem reporting exception from \r-line-ended file
Thanks petrvanblokland for reporting and saz for the patch
Diffstat (limited to 'tests/view_tests')
-rw-r--r--tests/view_tests/tests/test_debug.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py
index b44cd88abe..1022d05998 100644
--- a/tests/view_tests/tests/test_debug.py
+++ b/tests/view_tests/tests/test_debug.py
@@ -6,6 +6,7 @@ from __future__ import absolute_import, unicode_literals
import inspect
import os
import sys
+import tempfile
from django.core import mail
from django.core.files.uploadedfile import SimpleUploadedFile
@@ -13,7 +14,7 @@ from django.core.urlresolvers import reverse
from django.test import TestCase, RequestFactory
from django.test.utils import (override_settings, setup_test_template_loader,
restore_template_loaders)
-from django.utils.encoding import force_text
+from django.utils.encoding import force_text, force_bytes
from django.views.debug import ExceptionReporter
from .. import BrokenException, except_args
@@ -122,6 +123,24 @@ class ExceptionReporterTests(TestCase):
self.assertIn('<h2>Request information</h2>', html)
self.assertIn('<p>Request data not supplied</p>', html)
+ def test_eol_support(self):
+ """Test that the ExceptionReporter supports Unix, Windows and Macintosh EOL markers"""
+ LINES = list(u'print %d' % i for i in range(1,6))
+ reporter = ExceptionReporter(None, None, None, None)
+
+ for newline in ['\n','\r\n','\r']:
+ fd,filename = tempfile.mkstemp(text = False)
+ os.write(fd, force_bytes(newline.join(LINES)+newline))
+ os.close(fd)
+
+ try:
+ self.assertEqual(
+ reporter._get_lines_from_file(filename, 3, 2),
+ (1, LINES[1:3], LINES[3], LINES[4:])
+ )
+ finally:
+ os.unlink(filename)
+
def test_no_exception(self):
"An exception report can be generated for just a request"
request = self.rf.get('/test_view/')