Changeset 391 for python/trunk/Lib/test/test_wsgiref.py
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Lib/test/test_wsgiref.py
r2 r391 40 40 41 41 42 43 44 45 42 def hello_app(environ,start_response): 46 43 start_response("200 OK", [ … … 61 58 62 59 return out.getvalue(), err.getvalue() 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 60 85 61 … … 121 97 122 98 123 124 125 126 127 99 class IntegrationTests(TestCase): 128 100 … … 152 124 return ["Hello, world!"] 153 125 out, err = run_amock(validator(bad_app)) 154 self. failUnless(out.endswith(126 self.assertTrue(out.endswith( 155 127 "A server error occurred. Please contact the administrator." 156 128 )) … … 162 134 163 135 164 165 166 167 168 136 class UtilityTests(TestCase): 169 137 … … 180 148 env = {} 181 149 util.setup_testing_defaults(env) 182 if isinstance(value, StringIO):183 self. failUnless(isinstance(env[key],StringIO))150 if isinstance(value, StringIO): 151 self.assertIsInstance(env[key], StringIO) 184 152 else: 185 self.assertEqual(env[key], value)153 self.assertEqual(env[key], value) 186 154 187 155 # Check existing value 188 156 env = {key:alt} 189 157 util.setup_testing_defaults(env) 190 self. failUnless(env[key] is alt)158 self.assertTrue(env[key] is alt) 191 159 192 160 def checkCrossDefault(self,key,value,**kw): … … 202 170 self.assertEqual(util.request_uri(kw,query),uri) 203 171 204 205 206 207 208 209 172 def checkFW(self,text,size,match): 210 173 … … 215 178 216 179 it = make_it() 217 self. failIf(it.filelike.closed)180 self.assertFalse(it.filelike.closed) 218 181 219 182 for item in it: 220 183 pass 221 184 222 self. failIf(it.filelike.closed)185 self.assertFalse(it.filelike.closed) 223 186 224 187 it.close() 225 self.failUnless(it.filelike.closed) 226 188 self.assertTrue(it.filelike.closed) 227 189 228 190 def testSimpleShifts(self): … … 232 194 self.checkShift('/a','/x/y', 'x', '/a/x', '/y') 233 195 self.checkShift('/a','/x/', 'x', '/a/x', '/') 234 235 196 236 197 def testNormalizedShifts(self): … … 246 207 self.checkShift('/a/b', '/x//', 'x', '/a/b/x', '/') 247 208 self.checkShift('/a/b', '/.', None, '/a/b', '') 248 249 209 250 210 def testDefaults(self): … … 267 227 self.checkDefault(key,value) 268 228 269 270 229 def testCrossDefaults(self): 271 230 self.checkCrossDefault('HTTP_HOST',"foo.bar",SERVER_NAME="foo.bar") … … 277 236 self.checkCrossDefault('SERVER_PORT',"443",HTTPS="on") 278 237 279 280 238 def testGuessScheme(self): 281 239 self.assertEqual(util.guess_scheme({}), "http") … … 284 242 self.assertEqual(util.guess_scheme({'HTTPS':"yes"}), "https") 285 243 self.assertEqual(util.guess_scheme({'HTTPS':"1"}), "https") 286 287 288 289 290 244 291 245 def testAppURIs(self): … … 307 261 self.checkReqURI("http://127.0.0.1/spammity/spam", 308 262 SCRIPT_NAME="/spammity", PATH_INFO="/spam") 263 self.checkReqURI("http://127.0.0.1/spammity/spam;ham", 264 SCRIPT_NAME="/spammity", PATH_INFO="/spam;ham") 265 self.checkReqURI("http://127.0.0.1/spammity/spam;cookie=1234,5678", 266 SCRIPT_NAME="/spammity", PATH_INFO="/spam;cookie=1234,5678") 309 267 self.checkReqURI("http://127.0.0.1/spammity/spam?say=ni", 310 268 SCRIPT_NAME="/spammity", PATH_INFO="/spam",QUERY_STRING="say=ni") … … 321 279 ).split(): 322 280 for alt in hop, hop.title(), hop.upper(), hop.lower(): 323 self. failUnless(util.is_hop_by_hop(alt))281 self.assertTrue(util.is_hop_by_hop(alt)) 324 282 325 283 # Not comprehensive, just a few random header names … … 328 286 ).split(): 329 287 for alt in hop, hop.title(), hop.upper(), hop.lower(): 330 self. failIf(util.is_hop_by_hop(alt))288 self.assertFalse(util.is_hop_by_hop(alt)) 331 289 332 290 class HeaderTests(TestCase): … … 339 297 self.assertEqual(Headers(test[:]).values(), ['y']) 340 298 self.assertEqual(Headers(test[:]).items(), test) 341 self. failIf(Headers(test).items() is test) # must be copy!299 self.assertFalse(Headers(test).items() is test) # must be copy! 342 300 343 301 h=Headers([]) … … 346 304 h['Foo'] = 'bar' 347 305 for m in h.has_key, h.__contains__, h.get, h.get_all, h.__getitem__: 348 self. failUnless(m('foo'))349 self. failUnless(m('Foo'))350 self. failUnless(m('FOO'))351 self. failIf(m('bar'))306 self.assertTrue(m('foo')) 307 self.assertTrue(m('Foo')) 308 self.assertTrue(m('FOO')) 309 self.assertFalse(m('bar')) 352 310 353 311 self.assertEqual(h['foo'],'bar') … … 406 364 def handle_error(self): 407 365 raise # for testing, we want to see what's happening 408 409 410 411 412 413 414 415 416 417 366 418 367 … … 433 382 from os import environ 434 383 for k,v in environ.items(): 435 if not empty.has_key(k):384 if k not in empty: 436 385 self.assertEqual(env[k],v) 437 386 for k,v in empty.items(): 438 self. failUnless(env.has_key(k))387 self.assertIn(k, env) 439 388 440 389 def testEnviron(self): … … 449 398 h.setup_environ() 450 399 for key in 'wsgi.url_scheme', 'wsgi.input', 'wsgi.errors': 451 self.assert _(h.environ.has_key(key))400 self.assertIn(key, h.environ) 452 401 453 402 def testScheme(self): … … 456 405 h=TestHandler(); h.setup_environ() 457 406 self.assertEqual(h.environ['wsgi.url_scheme'],'http') 458 459 407 460 408 def testAbstractMethods(self): … … 466 414 self.assertRaises(NotImplementedError, h._write, "test") 467 415 468 469 416 def testContentLength(self): 470 417 # Demo one reason iteration is better than write()... ;) … … 476 423 def trivial_app2(e,s): 477 424 s('200 OK',[])(e['wsgi.url_scheme']) 425 return [] 426 427 def trivial_app4(e,s): 428 # Simulate a response to a HEAD request 429 s('200 OK',[('Content-Length', '12345')]) 478 430 return [] 479 431 … … 494 446 495 447 496 497 498 499 448 h = TestHandler() 449 h.run(trivial_app4) 450 self.assertEqual(h.stdout.getvalue(), 451 b'Status: 200 OK\r\n' 452 b'Content-Length: 12345\r\n' 453 b'\r\n') 500 454 501 455 def testBasicErrorOutput(self): … … 524 478 "\r\n%s" % (h.error_status,len(h.error_body),h.error_body)) 525 479 526 self. failUnless(h.stderr.getvalue().find("AssertionError")<>-1)480 self.assertNotEqual(h.stderr.getvalue().find("AssertionError"), -1) 527 481 528 482 def testErrorAfterOutput(self): … … 537 491 "Status: 200 OK\r\n" 538 492 "\r\n"+MSG) 539 self.failUnless(h.stderr.getvalue().find("AssertionError")<>-1) 540 493 self.assertNotEqual(h.stderr.getvalue().find("AssertionError"), -1) 541 494 542 495 def testHeaderFormats(self): … … 576 529 self.assertEqual(h.stdout.getvalue(),"") 577 530 else: 578 self. failUnless(531 self.assertTrue( 579 532 re.match(stdpat%(version,sw), h.stdout.getvalue()), 580 533 (stdpat%(version,sw), h.stdout.getvalue()) 581 534 ) 582 535 583 # This epilogue is needed for compatibility with the Python 2.5 regrtest module 536 def testCloseOnError(self): 537 side_effects = {'close_called': False} 538 MSG = b"Some output has been sent" 539 def error_app(e,s): 540 s("200 OK",[])(MSG) 541 class CrashyIterable(object): 542 def __iter__(self): 543 while True: 544 yield b'blah' 545 raise AssertionError("This should be caught by handler") 546 547 def close(self): 548 side_effects['close_called'] = True 549 return CrashyIterable() 550 551 h = ErrorHandler() 552 h.run(error_app) 553 self.assertEqual(side_effects['close_called'], True) 554 584 555 585 556 def test_main(): … … 588 559 if __name__ == "__main__": 589 560 test_main() 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 # the above lines intentionally left blank
Note:
See TracChangeset
for help on using the changeset viewer.