Lines Matching refs:self
29 def __init__(self, server_address, RequestHandlerClass):
30 BaseServer.__init__(self, server_address, RequestHandlerClass)
31 self.server_bind()
33 def server_bind(self):
34 host, port = self.server_address
35 self.server_name = host
36 self.server_port = port
37 self.setup_environ()
42 def setup(self):
43 self.connection = self.request
44 self.rfile, self.wfile = self.connection
46 def finish(self):
107 def check_hello(self, out, has_length=True):
110 self.assertEqual(out,
120 def test_plain_hello(self):
122 self.check_hello(out)
124 def test_environ(self):
132 self.assertEqual(
137 def test_request_length(self):
139 self.assertEqual(out.splitlines()[0],
142 def test_validated_hello(self):
145 self.check_hello(out, has_length=False)
147 def test_simple_validation_error(self):
152 self.assertTrue(out.endswith(
155 self.assertEqual(
161 def test_status_validation_errors(self):
175 with self.subTest(status=status):
177 self.assertTrue(out.endswith(
180 self.assertEqual(err.splitlines()[-2], exc_message)
182 def test_wsgi_input(self):
188 self.assertTrue(out.endswith(
191 self.assertEqual(
195 def test_bytes_validation(self):
203 self.assertTrue(err.endswith('"GET / HTTP/1.0" 200 4\n'))
207 self.assertEqual(
216 def test_cp1252_url(self):
228 self.assertEqual(
239 def test_interrupted_write(self):
253 self.addCleanup(server.server_close)
260 self.addCleanup(signal.signal, signal.SIGUSR1, original)
286 self.assertEqual(received, support.SOCK_MAX_SIZE - 100)
291 def checkShift(self,sn_in,pi_in,part,sn_out,pi_out):
294 self.assertEqual(util.shift_path_info(env),part)
295 self.assertEqual(env['PATH_INFO'],pi_out)
296 self.assertEqual(env['SCRIPT_NAME'],sn_out)
299 def checkDefault(self, key, value, alt=None):
304 self.assertIsInstance(env[key], StringIO)
306 self.assertIsInstance(env[key],BytesIO)
308 self.assertEqual(env[key], value)
313 self.assertIs(env[key], alt)
315 def checkCrossDefault(self,key,value,**kw):
317 self.assertEqual(kw[key],value)
319 def checkAppURI(self,uri,**kw):
321 self.assertEqual(util.application_uri(kw),uri)
323 def checkReqURI(self,uri,query=1,**kw):
325 self.assertEqual(util.request_uri(kw,query),uri)
327 def checkFW(self,text,size,match):
335 self.assertFalse(it.filelike.closed)
340 self.assertFalse(it.filelike.closed)
343 self.assertTrue(it.filelike.closed)
345 def testSimpleShifts(self):
346 self.checkShift('','/', '', '/', '')
347 self.checkShift('','/x', 'x', '/x', '')
348 self.checkShift('/','', None, '/', '')
349 self.checkShift('/a','/x/y', 'x', '/a/x', '/y')
350 self.checkShift('/a','/x/', 'x', '/a/x', '/')
352 def testNormalizedShifts(self):
353 self.checkShift('/a/b', '/../y', '..', '/a', '/y')
354 self.checkShift('', '/../y', '..', '', '/y')
355 self.checkShift('/a/b', '//y', 'y', '/a/b/y', '')
356 self.checkShift('/a/b', '//y/', 'y', '/a/b/y', '/')
357 self.checkShift('/a/b', '/./y', 'y', '/a/b/y', '')
358 self.checkShift('/a/b', '/./y/', 'y', '/a/b/y', '/')
359 self.checkShift('/a/b', '///./..//y/.//', '..', '/a', '/y/')
360 self.checkShift('/a/b', '///', '', '/a/b/', '')
361 self.checkShift('/a/b', '/.//', '', '/a/b/', '')
362 self.checkShift('/a/b', '/x//', 'x', '/a/b/x', '/')
363 self.checkShift('/a/b', '/.', None, '/a/b', '')
365 def testDefaults(self):
382 self.checkDefault(key,value)
384 def testCrossDefaults(self):
385 self.checkCrossDefault('HTTP_HOST',"foo.bar",SERVER_NAME="foo.bar")
386 self.checkCrossDefault('wsgi.url_scheme',"https",HTTPS="on")
387 self.checkCrossDefault('wsgi.url_scheme',"https",HTTPS="1")
388 self.checkCrossDefault('wsgi.url_scheme',"https",HTTPS="yes")
389 self.checkCrossDefault('wsgi.url_scheme',"http",HTTPS="foo")
390 self.checkCrossDefault('SERVER_PORT',"80",HTTPS="foo")
391 self.checkCrossDefault('SERVER_PORT',"443",HTTPS="on")
393 def testGuessScheme(self):
394 self.assertEqual(util.guess_scheme({}), "http")
395 self.assertEqual(util.guess_scheme({'HTTPS':"foo"}), "http")
396 self.assertEqual(util.guess_scheme({'HTTPS':"on"}), "https")
397 self.assertEqual(util.guess_scheme({'HTTPS':"yes"}), "https")
398 self.assertEqual(util.guess_scheme({'HTTPS':"1"}), "https")
400 def testAppURIs(self):
401 self.checkAppURI("http://127.0.0.1/")
402 self.checkAppURI("http://127.0.0.1/spam", SCRIPT_NAME="/spam")
403 self.checkAppURI("http://127.0.0.1/sp%E4m", SCRIPT_NAME="/sp\xe4m")
404 self.checkAppURI("http://spam.example.com:2071/",
406 self.checkAppURI("http://spam.example.com/",
408 self.checkAppURI("http://127.0.0.1/",
410 self.checkAppURI("https://127.0.0.1/", HTTPS="on")
411 self.checkAppURI("http://127.0.0.1:8000/", SERVER_PORT="8000",
414 def testReqURIs(self):
415 self.checkReqURI("http://127.0.0.1/")
416 self.checkReqURI("http://127.0.0.1/spam", SCRIPT_NAME="/spam")
417 self.checkReqURI("http://127.0.0.1/sp%E4m", SCRIPT_NAME="/sp\xe4m")
418 self.checkReqURI("http://127.0.0.1/spammity/spam",
420 self.checkReqURI("http://127.0.0.1/spammity/sp%E4m",
422 self.checkReqURI("http://127.0.0.1/spammity/spam;ham",
424 self.checkReqURI("http://127.0.0.1/spammity/spam;cookie=1234,5678",
426 self.checkReqURI("http://127.0.0.1/spammity/spam?say=ni",
428 self.checkReqURI("http://127.0.0.1/spammity/spam?s%E4y=ni",
430 self.checkReqURI("http://127.0.0.1/spammity/spam", 0,
433 def testFileWrapper(self):
434 self.checkFW("xyz"*50, 120, ["xyz"*40,"xyz"*10])
436 def testHopByHop(self):
442 self.assertTrue(util.is_hop_by_hop(alt))
449 self.assertFalse(util.is_hop_by_hop(alt))
453 def testMappingInterface(self):
455 self.assertEqual(len(Headers()), 0)
456 self.assertEqual(len(Headers([])),0)
457 self.assertEqual(len(Headers(test[:])),1)
458 self.assertEqual(Headers(test[:]).keys(), ['x'])
459 self.assertEqual(Headers(test[:]).values(), ['y'])
460 self.assertEqual(Headers(test[:]).items(), test)
461 self.assertIsNot(Headers(test).items(), test) # must be copy!
468 self.assertTrue(m('foo'))
469 self.assertTrue(m('Foo'))
470 self.assertTrue(m('FOO'))
471 self.assertFalse(m('bar'))
473 self.assertEqual(h['foo'],'bar')
475 self.assertEqual(h['FOO'],'baz')
476 self.assertEqual(h.get_all('foo'),['baz'])
478 self.assertEqual(h.get("foo","whee"), "baz")
479 self.assertEqual(h.get("zoo","whee"), "whee")
480 self.assertEqual(h.setdefault("foo","whee"), "baz")
481 self.assertEqual(h.setdefault("zoo","whee"), "whee")
482 self.assertEqual(h["foo"],"baz")
483 self.assertEqual(h["zoo"],"whee")
485 def testRequireList(self):
486 self.assertRaises(TypeError, Headers, "foo")
488 def testExtras(self):
490 self.assertEqual(str(h),'\r\n')
493 self.assertEqual(h['foo'], 'bar; baz="spam"')
494 self.assertEqual(str(h),'foo: bar; baz="spam"\r\n\r\n')
497 self.assertEqual(h.get_all('foo'),
500 self.assertEqual(str(h),
514 def __init__(self,**kw):
517 self, BytesIO(), BytesIO(), StringIO(), kw,
524 def handle_error(self):
532 def testEnviron(self):
553 self.assertEqual(getattr(handler, 'wsgi_' + attr),
584 self.assertDictEqual(handler.environ, expected)
586 def testCGIEnviron(self):
590 self.assertIn(key, h.environ)
592 def testScheme(self):
594 self.assertEqual(h.environ['wsgi.url_scheme'],'https')
596 self.assertEqual(h.environ['wsgi.url_scheme'],'http')
598 def testAbstractMethods(self):
603 self.assertRaises(NotImplementedError, getattr(h,name))
604 self.assertRaises(NotImplementedError, h._write, "test")
606 def testContentLength(self):
628 self.assertEqual(h.stdout.getvalue(),
636 self.assertEqual(h.stdout.getvalue(),
643 self.assertEqual(h.stdout.getvalue(),
651 self.assertEqual(h.stdout.getvalue(),
656 def testBasicErrorOutput(self):
667 self.assertEqual(h.stdout.getvalue(),
671 self.assertEqual(h.stderr.getvalue(),"")
675 self.assertEqual(h.stdout.getvalue(),
682 self.assertIn("AssertionError", h.stderr.getvalue())
684 def testErrorAfterOutput(self):
692 self.assertEqual(h.stdout.getvalue(),
695 self.assertIn("AssertionError", h.stderr.getvalue())
697 def testHeaderFormats(self):
723 self.assertEqual(shortpat,h.stdout.getvalue())
731 self.assertEqual(h.stdout.getvalue(),b"")
733 self.assertTrue(
740 def testBytesData(self):
749 self.assertEqual(b"Status: 200 OK\r\n"
756 def testCloseOnError(self):
762 def __iter__(self):
766 def close(self):
772 self.assertEqual(side_effects['close_called'], True)
774 def testPartialWrite(self):
778 def write(self, b):
783 def flush(self):
789 with self.assertWarnsRegex(DeprecationWarning, msg):
791 self.assertEqual(b"HTTP/1.0 200 OK\r\n"
799 def testClientConnectionTerminations(self):
806 with self.subTest(exception=exception):
808 def write(self, b):
815 self.assertFalse(stderr.getvalue())
817 def testDontResetInternalStateOnException(self):
826 def write(self, b):
834 self.assertIn("CustomException", stderr.getvalue())
837 self.assertIsNotNone(h.result)
838 self.assertIsNotNone(h.headers)
839 self.assertIsNotNone(h.status)
840 self.assertIsNotNone(h.environ)