diff options
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/test/test_util.py')
-rwxr-xr-x | lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/test/test_util.py | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/test/test_util.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/test/test_util.py deleted file mode 100755 index 42b54b93..00000000 --- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/test/test_util.py +++ /dev/null @@ -1,380 +0,0 @@ -# Copyright (c) Twisted Matrix Laboratories. -# See LICENSE for details. - -""" -Tests for L{twisted.web.util}. -""" - -from twisted.python.failure import Failure -from twisted.trial.unittest import TestCase -from twisted.web import util -from twisted.web.error import FlattenerError -from twisted.web.util import ( - redirectTo, _SourceLineElement, - _SourceFragmentElement, _FrameElement, _StackElement, - FailureElement, formatFailure) - -from twisted.web.http import FOUND -from twisted.web.server import Request -from twisted.web.template import TagLoader, flattenString, tags - -from twisted.web.test.test_web import DummyChannel - - -class RedirectToTestCase(TestCase): - """ - Tests for L{redirectTo}. - """ - - def test_headersAndCode(self): - """ - L{redirectTo} will set the C{Location} and C{Content-Type} headers on - its request, and set the response code to C{FOUND}, so the browser will - be redirected. - """ - request = Request(DummyChannel(), True) - request.method = 'GET' - targetURL = "http://target.example.com/4321" - redirectTo(targetURL, request) - self.assertEqual(request.code, FOUND) - self.assertEqual( - request.responseHeaders.getRawHeaders('location'), [targetURL]) - self.assertEqual( - request.responseHeaders.getRawHeaders('content-type'), - ['text/html; charset=utf-8']) - - - def test_redirectToUnicodeURL(self) : - """ - L{redirectTo} will raise TypeError if unicode object is passed in URL - """ - request = Request(DummyChannel(), True) - request.method = 'GET' - targetURL = u'http://target.example.com/4321' - self.assertRaises(TypeError, redirectTo, targetURL, request) - - - -class FailureElementTests(TestCase): - """ - Tests for L{FailureElement} and related helpers which can render a - L{Failure} as an HTML string. - """ - def setUp(self): - """ - Create a L{Failure} which can be used by the rendering tests. - """ - def lineNumberProbeAlsoBroken(): - message = "This is a problem" - raise Exception(message) - # Figure out the line number from which the exception will be raised. - self.base = lineNumberProbeAlsoBroken.func_code.co_firstlineno + 1 - - try: - lineNumberProbeAlsoBroken() - except: - self.failure = Failure(captureVars=True) - self.frame = self.failure.frames[-1] - - - def test_sourceLineElement(self): - """ - L{_SourceLineElement} renders a source line and line number. - """ - element = _SourceLineElement( - TagLoader(tags.div( - tags.span(render="lineNumber"), - tags.span(render="sourceLine"))), - 50, " print 'hello'") - d = flattenString(None, element) - expected = ( - u"<div><span>50</span><span>" - u" \N{NO-BREAK SPACE} \N{NO-BREAK SPACE}print 'hello'</span></div>") - d.addCallback( - self.assertEqual, expected.encode('utf-8')) - return d - - - def test_sourceFragmentElement(self): - """ - L{_SourceFragmentElement} renders source lines at and around the line - number indicated by a frame object. - """ - element = _SourceFragmentElement( - TagLoader(tags.div( - tags.span(render="lineNumber"), - tags.span(render="sourceLine"), - render="sourceLines")), - self.frame) - - source = [ - u' \N{NO-BREAK SPACE} \N{NO-BREAK SPACE}message = ' - u'"This is a problem"', - - u' \N{NO-BREAK SPACE} \N{NO-BREAK SPACE}raise Exception(message)', - u'# Figure out the line number from which the exception will be ' - u'raised.', - ] - d = flattenString(None, element) - d.addCallback( - self.assertEqual, - ''.join([ - '<div class="snippet%sLine"><span>%d</span><span>%s</span>' - '</div>' % ( - ["", "Highlight"][lineNumber == 1], - self.base + lineNumber, - (u" \N{NO-BREAK SPACE}" * 4 + sourceLine).encode( - 'utf-8')) - for (lineNumber, sourceLine) - in enumerate(source)])) - return d - - - def test_frameElementFilename(self): - """ - The I{filename} renderer of L{_FrameElement} renders the filename - associated with the frame object used to initialize the - L{_FrameElement}. - """ - element = _FrameElement( - TagLoader(tags.span(render="filename")), - self.frame) - d = flattenString(None, element) - d.addCallback( - # __file__ differs depending on whether an up-to-date .pyc file - # already existed. - self.assertEqual, "<span>" + __file__.rstrip('c') + "</span>") - return d - - - def test_frameElementLineNumber(self): - """ - The I{lineNumber} renderer of L{_FrameElement} renders the line number - associated with the frame object used to initialize the - L{_FrameElement}. - """ - element = _FrameElement( - TagLoader(tags.span(render="lineNumber")), - self.frame) - d = flattenString(None, element) - d.addCallback( - self.assertEqual, "<span>" + str(self.base + 1) + "</span>") - return d - - - def test_frameElementFunction(self): - """ - The I{function} renderer of L{_FrameElement} renders the line number - associated with the frame object used to initialize the - L{_FrameElement}. - """ - element = _FrameElement( - TagLoader(tags.span(render="function")), - self.frame) - d = flattenString(None, element) - d.addCallback( - self.assertEqual, "<span>lineNumberProbeAlsoBroken</span>") - return d - - - def test_frameElementSource(self): - """ - The I{source} renderer of L{_FrameElement} renders the source code near - the source filename/line number associated with the frame object used to - initialize the L{_FrameElement}. - """ - element = _FrameElement(None, self.frame) - renderer = element.lookupRenderMethod("source") - tag = tags.div() - result = renderer(None, tag) - self.assertIsInstance(result, _SourceFragmentElement) - self.assertIdentical(result.frame, self.frame) - self.assertEqual([tag], result.loader.load()) - - - def test_stackElement(self): - """ - The I{frames} renderer of L{_StackElement} renders each stack frame in - the list of frames used to initialize the L{_StackElement}. - """ - element = _StackElement(None, self.failure.frames[:2]) - renderer = element.lookupRenderMethod("frames") - tag = tags.div() - result = renderer(None, tag) - self.assertIsInstance(result, list) - self.assertIsInstance(result[0], _FrameElement) - self.assertIdentical(result[0].frame, self.failure.frames[0]) - self.assertIsInstance(result[1], _FrameElement) - self.assertIdentical(result[1].frame, self.failure.frames[1]) - # They must not share the same tag object. - self.assertNotEqual(result[0].loader.load(), result[1].loader.load()) - self.assertEqual(2, len(result)) - - - def test_failureElementTraceback(self): - """ - The I{traceback} renderer of L{FailureElement} renders the failure's - stack frames using L{_StackElement}. - """ - element = FailureElement(self.failure) - renderer = element.lookupRenderMethod("traceback") - tag = tags.div() - result = renderer(None, tag) - self.assertIsInstance(result, _StackElement) - self.assertIdentical(result.stackFrames, self.failure.frames) - self.assertEqual([tag], result.loader.load()) - - - def test_failureElementType(self): - """ - The I{type} renderer of L{FailureElement} renders the failure's - exception type. - """ - element = FailureElement( - self.failure, TagLoader(tags.span(render="type"))) - d = flattenString(None, element) - d.addCallback( - self.assertEqual, "<span>exceptions.Exception</span>") - return d - - - def test_failureElementValue(self): - """ - The I{value} renderer of L{FailureElement} renders the value's exception - value. - """ - element = FailureElement( - self.failure, TagLoader(tags.span(render="value"))) - d = flattenString(None, element) - d.addCallback( - self.assertEqual, '<span>This is a problem</span>') - return d - - - -class FormatFailureTests(TestCase): - """ - Tests for L{twisted.web.util.formatFailure} which returns an HTML string - representing the L{Failure} instance passed to it. - """ - def test_flattenerError(self): - """ - If there is an error flattening the L{Failure} instance, - L{formatFailure} raises L{FlattenerError}. - """ - self.assertRaises(FlattenerError, formatFailure, object()) - - - def test_returnsBytes(self): - """ - The return value of L{formatFailure} is a C{str} instance (not a - C{unicode} instance) with numeric character references for any non-ASCII - characters meant to appear in the output. - """ - try: - raise Exception("Fake bug") - except: - result = formatFailure(Failure()) - - self.assertIsInstance(result, str) - self.assertTrue(all(ord(ch) < 128 for ch in result)) - # Indentation happens to rely on NO-BREAK SPACE - self.assertIn(" ", result) - - - -class DeprecatedHTMLHelpers(TestCase): - """ - The various HTML generation helper APIs in L{twisted.web.util} are - deprecated. - """ - def _htmlHelperDeprecationTest(self, functionName): - """ - Helper method which asserts that using the name indicated by - C{functionName} from the L{twisted.web.util} module emits a deprecation - warning. - """ - getattr(util, functionName) - warnings = self.flushWarnings([self._htmlHelperDeprecationTest]) - self.assertEqual(warnings[0]['category'], DeprecationWarning) - self.assertEqual( - warnings[0]['message'], - "twisted.web.util.%s was deprecated in Twisted 12.1.0: " - "See twisted.web.template." % (functionName,)) - - - def test_htmlrepr(self): - """ - L{twisted.web.util.htmlrepr} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlrepr") - - - def test_saferepr(self): - """ - L{twisted.web.util.saferepr} is deprecated. - """ - self._htmlHelperDeprecationTest("saferepr") - - - def test_htmlUnknown(self): - """ - L{twisted.web.util.htmlUnknown} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlUnknown") - - - def test_htmlDict(self): - """ - L{twisted.web.util.htmlDict} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlDict") - - - def test_htmlList(self): - """ - L{twisted.web.util.htmlList} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlList") - - - def test_htmlInst(self): - """ - L{twisted.web.util.htmlInst} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlInst") - - - def test_htmlString(self): - """ - L{twisted.web.util.htmlString} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlString") - - - def test_htmlIndent(self): - """ - L{twisted.web.util.htmlIndent} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlIndent") - - - def test_htmlFunc(self): - """ - L{twisted.web.util.htmlFunc} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlFunc") - - - def test_htmlReprTypes(self): - """ - L{twisted.web.util.htmlReprTypes} is deprecated. - """ - self._htmlHelperDeprecationTest("htmlReprTypes") - - - def test_stylesheet(self): - """ - L{twisted.web.util.stylesheet} is deprecated. - """ - self._htmlHelperDeprecationTest("stylesheet") |