/usr/lib/python3/dist-packages/twisted/web/test
NameSizeModeActions
__pycache__/-0755rm
injectionhelpers.py55930644editdlrm
requesthelper.py151210644editdlrm
test_agent.py1210420644editdlrm
test_cgi.py151190644editdlrm
test_client.py13640644editdlrm
test_distrib.py180360644editdlrm
test_domhelpers.py110340644editdlrm
test_error.py159460644editdlrm
test_flatten.py221300644editdlrm
test_html.py12220644editdlrm
test_http.py1555120644editdlrm
test_http2.py1078460644editdlrm
test_httpauth.py237860644editdlrm
test_http_headers.py232920644editdlrm
test_newclient.py1093660644editdlrm
test_proxy.py200460644editdlrm
test_resource.py91360644editdlrm
test_script.py38140644editdlrm
test_soap.py31340644editdlrm
test_stan.py72520644editdlrm
test_static.py681970644editdlrm
test_tap.py118420644editdlrm
test_template.py288410644editdlrm
test_util.py150490644editdlrm
test_vhost.py77360644editdlrm
test_web.py691450644editdlrm
test_webclient.py117920644editdlrm
test_web__responses.py8290644editdlrm
test_wsgi.py765120644editdlrm
test_xml.py420300644editdlrm
test_xmlrpc.py305720644editdlrm
_util.py31740644editdlrm
__init__.py1070644editdlrm
Edit: /usr/lib/python3/dist-packages/twisted/web/test/_util.py (3174B)
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ General helpers for L{twisted.web} unit tests. """ from typing import Type from twisted.internet.defer import Deferred, succeed from twisted.trial.unittest import SynchronousTestCase from twisted.web import server from twisted.web._flatten import flattenString from twisted.web.error import FlattenerError from twisted.web.template import Flattenable def _render(resource, request): result = resource.render(request) if isinstance(result, bytes): request.write(result) request.finish() return succeed(None) elif result is server.NOT_DONE_YET: if request.finished: return succeed(None) else: return request.notifyFinish() else: raise ValueError(f"Unexpected return value: {result!r}") class FlattenTestCase(SynchronousTestCase): """ A test case that assists with testing L{twisted.web._flatten}. """ def assertFlattensTo(self, root: Flattenable, target: bytes) -> Deferred[bytes]: """ Assert that a root element, when flattened, is equal to a string. """ def check(result: bytes) -> bytes: return self.assertEqual(result, target) # type: ignore[no-any-return] d: Deferred[bytes] = flattenString(None, root) d.addCallback(check) return d def assertFlattensImmediately(self, root: Flattenable, target: bytes) -> bytes: """ Assert that a root element, when flattened, is equal to a string, and performs no asynchronus Deferred anything. This version is more convenient in tests which wish to make multiple assertions about flattening, since it can be called multiple times without having to add multiple callbacks. @return: the result of rendering L{root}, which should be equivalent to L{target}. @rtype: L{bytes} """ return self.successResultOf(self.assertFlattensTo(root, target)) # type: ignore[no-any-return] def assertFlatteningRaises(self, root: Flattenable, exn: Type[Exception]) -> None: """ Assert flattening a root element raises a particular exception. """ failure = self.failureResultOf(self.assertFlattensTo(root, b""), FlattenerError) self.assertIsInstance(failure.value._exception, exn) def assertIsFilesystemTemporary(case, fileObj): """ Assert that C{fileObj} is a temporary file on the filesystem. @param case: A C{TestCase} instance to use to make the assertion. @raise: C{case.failureException} if C{fileObj} is not a temporary file on the filesystem. """ # The tempfile API used to create content returns an instance of a # different type depending on what platform we're running on. The point # here is to verify that the request body is in a file that's on the # filesystem. Having a fileno method that returns an int is a somewhat # close approximation of this. -exarkun case.assertIsInstance(fileObj.fileno(), int) __all__ = ["_render", "FlattenTestCase", "assertIsFilesystemTemporary"]