/opt/imh-python/lib/python3.9/site-packages/tornado/test
NameSizeModeActions
csv_translations/-0755rm
gettext_translations/-0755rm
static/-0755rm
templates/-0755rm
__pycache__/-0755rm
asyncio_test.py73290644editdlrm
auth_test.py240260644editdlrm
autoreload_test.py40750644editdlrm
concurrent_test.py61740644editdlrm
curl_httpclient_test.py44770644editdlrm
escape_test.py126940644editdlrm
gen_test.py347210644editdlrm
http1connection_test.py19720644editdlrm
httpclient_test.py320670644editdlrm
httpserver_test.py463320644editdlrm
httputil_test.py196000644editdlrm
import_test.py20460644editdlrm
ioloop_test.py260600644editdlrm
iostream_test.py461780644editdlrm
locale_test.py59070644editdlrm
locks_test.py175640644editdlrm
log_test.py97780644editdlrm
netutil_test.py80470644editdlrm
options_test.cfg760644editdlrm
options_test.py121740644editdlrm
options_test_types.cfg2770644editdlrm
options_test_types_str.cfg1580644editdlrm
process_test.py113920644editdlrm
queues_test.py141880644editdlrm
resolve_test_helper.py4210644editdlrm
routing_test.py91210644editdlrm
runtests.py84400644editdlrm
simple_httpclient_test.py318210644editdlrm
static_foo.txt970644editdlrm
tcpclient_test.py171150644editdlrm
tcpserver_test.py66740644editdlrm
template_test.py192040644editdlrm
test.crt12440644editdlrm
test.key17320644editdlrm
testing_test.py109850644editdlrm
twisted_test.py81160644editdlrm
util.py37680644editdlrm
util_test.py101270644editdlrm
websocket_test.py283310644editdlrm
web_test.py1184230644editdlrm
windows_test.py6980644editdlrm
wsgi_test.py6770644editdlrm
__init__.py3980644editdlrm
__main__.py3470644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/tornado/test/curl_httpclient_test.py (4477B)
# coding: utf-8 from hashlib import md5 import unittest from tornado.escape import utf8 from tornado.testing import AsyncHTTPTestCase from tornado.test import httpclient_test from tornado.web import Application, RequestHandler try: import pycurl # type: ignore except ImportError: pycurl = None if pycurl is not None: from tornado.curl_httpclient import CurlAsyncHTTPClient @unittest.skipIf(pycurl is None, "pycurl module not present") class CurlHTTPClientCommonTestCase(httpclient_test.HTTPClientCommonTestCase): def get_http_client(self): client = CurlAsyncHTTPClient(defaults=dict(allow_ipv6=False)) # make sure AsyncHTTPClient magic doesn't give us the wrong class self.assertTrue(isinstance(client, CurlAsyncHTTPClient)) return client class DigestAuthHandler(RequestHandler): def initialize(self, username, password): self.username = username self.password = password def get(self): realm = "test" opaque = "asdf" # Real implementations would use a random nonce. nonce = "1234" auth_header = self.request.headers.get("Authorization", None) if auth_header is not None: auth_mode, params = auth_header.split(" ", 1) assert auth_mode == "Digest" param_dict = {} for pair in params.split(","): k, v = pair.strip().split("=", 1) if v[0] == '"' and v[-1] == '"': v = v[1:-1] param_dict[k] = v assert param_dict["realm"] == realm assert param_dict["opaque"] == opaque assert param_dict["nonce"] == nonce assert param_dict["username"] == self.username assert param_dict["uri"] == self.request.path h1 = md5( utf8("%s:%s:%s" % (self.username, realm, self.password)) ).hexdigest() h2 = md5( utf8("%s:%s" % (self.request.method, self.request.path)) ).hexdigest() digest = md5(utf8("%s:%s:%s" % (h1, nonce, h2))).hexdigest() if digest == param_dict["response"]: self.write("ok") else: self.write("fail") else: self.set_status(401) self.set_header( "WWW-Authenticate", 'Digest realm="%s", nonce="%s", opaque="%s"' % (realm, nonce, opaque), ) class CustomReasonHandler(RequestHandler): def get(self): self.set_status(200, "Custom reason") class CustomFailReasonHandler(RequestHandler): def get(self): self.set_status(400, "Custom reason") @unittest.skipIf(pycurl is None, "pycurl module not present") class CurlHTTPClientTestCase(AsyncHTTPTestCase): def setUp(self): super(CurlHTTPClientTestCase, self).setUp() self.http_client = self.create_client() def get_app(self): return Application( [ ("/digest", DigestAuthHandler, {"username": "foo", "password": "bar"}), ( "/digest_non_ascii", DigestAuthHandler, {"username": "foo", "password": "barユ£"}, ), ("/custom_reason", CustomReasonHandler), ("/custom_fail_reason", CustomFailReasonHandler), ] ) def create_client(self, **kwargs): return CurlAsyncHTTPClient( force_instance=True, defaults=dict(allow_ipv6=False), **kwargs ) def test_digest_auth(self): response = self.fetch( "/digest", auth_mode="digest", auth_username="foo", auth_password="bar" ) self.assertEqual(response.body, b"ok") def test_custom_reason(self): response = self.fetch("/custom_reason") self.assertEqual(response.reason, "Custom reason") def test_fail_custom_reason(self): response = self.fetch("/custom_fail_reason") self.assertEqual(str(response.error), "HTTP 400: Custom reason") def test_digest_auth_non_ascii(self): response = self.fetch( "/digest_non_ascii", auth_mode="digest", auth_username="foo", auth_password="barユ£", ) self.assertEqual(response.body, b"ok")