336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
|
self.assertEqual(filter_url('http://domain.com/welcome/', app=True), 'welcome')
self.assertEqual(filter_url('http://domain.com', app=True), 'init')
self.assertEqual(filter_url('http://domain.com/', app=True), 'init')
self.assertEqual(filter_url('http://domain.com/abc', app=True), 'init')
self.assertEqual(filter_url('http://domain1.com/abc', app=True), 'app1')
self.assertEqual(filter_url('http://www.domain1.com/abc', app=True), 'app1')
self.assertEqual(filter_url('http://domain2.com/abc', app=True), 'app2')
self.assertEqual(filter_url('http://domain2.com/admin', app=True), 'admin')
self.assertEqual(filter_url('http://domain.com/goodapp', app=True), 'goodapp')
self.assertRaises(HTTP, filter_url, 'http://domain.com/bad!app', app=True)
try:
# 2.7+ only
self.assertRaisesRegexp(HTTP, '400.*invalid application', filter_url, 'http://domain.com/bad!app')
except AttributeError:
|
|
|
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
|
self.assertEqual(filter_url('http://domain.com/welcome/', app=True), 'welcome')
self.assertEqual(filter_url('http://domain.com', app=True), 'init')
self.assertEqual(filter_url('http://domain.com/', app=True), 'init')
self.assertEqual(filter_url('http://domain.com/abc', app=True), 'init')
self.assertEqual(filter_url('http://domain1.com/abc', app=True), 'app1')
self.assertEqual(filter_url('http://www.domain1.com/abc', app=True), 'app1')
self.assertEqual(filter_url('http://domain2.com/abc', app=True), 'app2')
self.assertEqual(filter_url('http://domain2.com/admin', app=True), 'app2')
self.assertEqual(filter_url('http://domain.com/goodapp', app=True), 'goodapp')
self.assertRaises(HTTP, filter_url, 'http://domain.com/bad!app', app=True)
try:
# 2.7+ only
self.assertRaisesRegexp(HTTP, '400.*invalid application', filter_url, 'http://domain.com/bad!app')
except AttributeError:
|
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
|
"www.domain1.com" : "app1",
# same domain, two ports, to two apps
"domain2.com" : "app2a",
"domain2.com:8080" : "app2b",
# two domains, same app, two controllers
"domain3a.com" : "app3/c3a",
"domain3b.com" : "app3/c3b",
# http vs https
"domain6.com:80" : "app6",
"domain6.com:443" : "app6s",
},
),
app1 = dict( default_controller = 'c1', default_function = 'f1', controllers = ['c1'], exclusive_domain=True, ),
app2a = dict( default_controller = 'c2a', default_function = 'f2a', controllers = ['c2a'], ),
app2b = dict( default_controller = 'c2b', default_function = 'f2b', controllers = ['c2b'], ),
app3 = dict( controllers = ['c3a', 'c3b'], ),
app4 = dict( default_controller = 'c4', controllers = ['c4'], domain = 'domain4.com' ),
app5 = dict( default_controller = 'c5', controllers = ['c5'], domain = 'localhost' ),
app6 = dict( default_controller = 'c6', default_function = 'f6', controllers = ['c6'], ),
app6s = dict( default_controller = 'c6s', default_function = 'f6s', controllers = ['c6s'], ),
)
load(rdict=routers)
self.assertEqual(filter_url('http://domain1.com/abc'), '/app1/c1/abc')
self.assertEqual(filter_url('http://domain1.com/c1/abc'), '/app1/c1/abc')
self.assertEqual(filter_url('http://domain1.com/abc.html'), '/app1/c1/abc')
self.assertEqual(filter_url('http://domain1.com/abc.css'), '/app1/c1/abc.css')
self.assertEqual(filter_url('http://domain1.com/index/abc'), "/app1/c1/index ['abc']")
self.assertEqual(filter_url('https://domain1.com/app1/ctr/fcn', domain=('app1',None), out=True), "/ctr/fcn")
self.assertEqual(filter_url('https://www.domain1.com/app1/ctr/fcn', domain=('app1',None), out=True), "/ctr/fcn")
self.assertEqual(filter_url('http://domain2.com/abc'), '/app2a/c2a/abc')
self.assertEqual(filter_url('http://domain2.com:8080/abc'), '/app2b/c2b/abc')
|
>
>
>
|
>
|
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
|
"www.domain1.com" : "app1",
# same domain, two ports, to two apps
"domain2.com" : "app2a",
"domain2.com:8080" : "app2b",
# two domains, same app, two controllers
"domain3a.com" : "app3/c3a",
"domain3b.com" : "app3/c3b",
# two domains, same app & controller, two functions
"domain4a.com" : "app4/c4/f4a",
"domain4b.com" : "app4/c4/f4b",
# http vs https
"domain6.com:80" : "app6",
"domain6.com:443" : "app6s",
},
),
app1 = dict( default_controller = 'c1', default_function = 'f1', controllers = ['c1'], exclusive_domain=True, ),
app2a = dict( default_controller = 'c2a', default_function = 'f2a', controllers = ['c2a'], ),
app2b = dict( default_controller = 'c2b', default_function = 'f2b', controllers = ['c2b'], ),
app3 = dict( controllers = ['c3a', 'c3b'], ),
app4 = dict( default_controller = 'c4', controllers = ['c4']),
app5 = dict( default_controller = 'c5', controllers = ['c5'], domain = 'localhost' ),
app6 = dict( default_controller = 'c6', default_function = 'f6', controllers = ['c6'], ),
app6s = dict( default_controller = 'c6s', default_function = 'f6s', controllers = ['c6s'], ),
)
load(rdict=routers)
self.assertEqual(filter_url('http://domain1.com/abc'), '/app1/c1/abc')
self.assertEqual(filter_url('http://domain1.com/c1/abc'), '/app1/c1/abc')
self.assertEqual(filter_url('http://domain1.com/abc.html'), '/app1/c1/abc')
self.assertEqual(filter_url('http://domain1.com/abc.css'), '/app1/c1/abc.css')
self.assertEqual(filter_url('http://domain1.com/index/abc'), "/app1/c1/index ['abc']")
self.assertEqual(filter_url('http://domain2.com/app1'), "/app2a/c2a/app1")
self.assertEqual(filter_url('https://domain1.com/app1/ctr/fcn', domain=('app1',None), out=True), "/ctr/fcn")
self.assertEqual(filter_url('https://www.domain1.com/app1/ctr/fcn', domain=('app1',None), out=True), "/ctr/fcn")
self.assertEqual(filter_url('http://domain2.com/abc'), '/app2a/c2a/abc')
self.assertEqual(filter_url('http://domain2.com:8080/abc'), '/app2b/c2b/abc')
|
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
|
self.assertEqual(filter_url('http://domain3a.com/c3b'), '/app3/c3b/index')
self.assertEqual(filter_url('http://domain3b.com/abc'), '/app3/c3b/abc')
self.assertEqual(filter_url('http://domain3a.com/app3/c3a/fcn', domain=('app3','c3a'), out=True), "/fcn")
self.assertEqual(filter_url('http://domain3a.com/app3/c3a/fcn', domain=('app3','c3b'), out=True), "/c3a/fcn")
self.assertEqual(filter_url('http://domain3a.com/app3/c3a/fcn', domain=('app1',None), out=True), "/app3/c3a/fcn")
self.assertEqual(filter_url('http://domain4.com/abc'), '/app4/c4/abc')
self.assertEqual(filter_url('https://domain4.com/app4/c4/fcn', domain=('app4',None), out=True), "/fcn")
self.assertEqual(filter_url('http://localhost/abc'), '/app5/c5/abc')
self.assertEqual(filter_url('http:///abc'), '/app5/c5/abc') # test null host => localhost
self.assertEqual(filter_url('https://localhost/app5/c5/fcn', domain=('app5',None), out=True), "/fcn")
self.assertEqual(filter_url('http://domain6.com'), '/app6/c6/f6')
self.assertEqual(filter_url('https://domain6.com'), '/app6s/c6s/f6s')
|
|
|
>
>
>
|
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
|
self.assertEqual(filter_url('http://domain3a.com/c3b'), '/app3/c3b/index')
self.assertEqual(filter_url('http://domain3b.com/abc'), '/app3/c3b/abc')
self.assertEqual(filter_url('http://domain3a.com/app3/c3a/fcn', domain=('app3','c3a'), out=True), "/fcn")
self.assertEqual(filter_url('http://domain3a.com/app3/c3a/fcn', domain=('app3','c3b'), out=True), "/c3a/fcn")
self.assertEqual(filter_url('http://domain3a.com/app3/c3a/fcn', domain=('app1',None), out=True), "/app3/c3a/fcn")
self.assertEqual(filter_url('http://domain4a.com/abc'), '/app4/c4/abc')
self.assertEqual(filter_url('https://domain4a.com/app4/c4/fcn', domain=('app4',None), out=True), "/fcn")
self.assertEqual(filter_url('http://domain4a.com'), '/app4/c4/f4a')
self.assertEqual(filter_url('http://domain4b.com'), '/app4/c4/f4b')
self.assertEqual(filter_url('http://localhost/abc'), '/app5/c5/abc')
self.assertEqual(filter_url('http:///abc'), '/app5/c5/abc') # test null host => localhost
self.assertEqual(filter_url('https://localhost/app5/c5/fcn', domain=('app5',None), out=True), "/fcn")
self.assertEqual(filter_url('http://domain6.com'), '/app6/c6/f6')
self.assertEqual(filter_url('https://domain6.com'), '/app6s/c6s/f6s')
|
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
|
default_application = 'app',
),
init = dict(
controllers = ['default'],
),
app = dict(
controllers = ['default', 'ctr'],
functions = ['index', 'user', 'help'],
),
app2 = dict(
controllers = ['default', 'ctr'],
functions = ['index', 'user', 'help'],
),
)
load(rdict=router_functions)
self.assertEqual(str(URL(a='init', c='default', f='f', args=['arg1'])), "/init/f/arg1")
self.assertEqual(str(URL(a='init', c='default', f='index', args=['arg1'])), "/init/index/arg1")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['arg1'])), "/arg1")
self.assertEqual(str(URL(a='app', c='default', f='user', args=['arg1'])), "/user/arg1")
self.assertEqual(str(URL(a='app', c='default', f='user', args=['index'])), "/user/index")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['index'])), "/index/index")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['init'])), "/index/init")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['ctr'])), "/index/ctr")
self.assertEqual(str(URL(a='app', c='ctr', f='index', args=['arg'])), "/ctr/index/arg")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['arg1'])), "/app2/arg1")
self.assertEqual(str(URL(a='app2', c='default', f='user', args=['arg1'])), "/app2/user/arg1")
self.assertEqual(str(URL(a='app2', c='default', f='user', args=['index'])), "/app2/user/index")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['index'])), "/app2/index/index")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['init'])), "/app2/index/init")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['ctr'])), "/app2/index/ctr")
self.assertEqual(filter_url('http://d.com/arg'), "/app/default/index ['arg']")
self.assertEqual(filter_url('http://d.com/user'), "/app/default/user")
self.assertEqual(filter_url('http://d.com/user/arg'), "/app/default/user ['arg']")
self.assertEqual(filter_url('http://d.com/ctr'), "/app/ctr/index")
self.assertEqual(filter_url('http://d.com/ctr/index/arg'), "/app/ctr/index ['arg']")
self.assertEqual(filter_url('http://d.com/ctr/arg'), "/app/ctr/arg")
self.assertEqual(filter_url('http://d.com/app2/arg'), "/app2/default/index ['arg']")
self.assertEqual(filter_url('http://d.com/app2/user'), "/app2/default/user")
self.assertEqual(filter_url('http://d.com/app2/user/arg'), "/app2/default/user ['arg']")
self.assertEqual(filter_url('http://d.com/app2/ctr'), "/app2/ctr/index")
self.assertEqual(filter_url('http://d.com/app2/ctr/index/arg'), "/app2/ctr/index ['arg']")
self.assertEqual(filter_url('http://d.com/app2/ctr/arg'), "/app2/ctr/arg")
|
>
|
>
>
>
>
>
>
>
>
>
>
>
>
|
<
|
|
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
|
default_application = 'app',
),
init = dict(
controllers = ['default'],
),
app = dict(
controllers = ['default', 'ctr'],
functions = dict(
default=['index', 'user', 'help'],
ctr=['ctrf1', 'ctrf2', 'ctrf3'],
),
default_function = dict(
default='index',
ctr='ctrf1',
),
),
app2 = dict(
controllers = ['default', 'ctr'],
functions = ['index', 'user', 'help'],
),
)
load(rdict=router_functions)
# outbound
self.assertEqual(str(URL(a='init', c='default', f='f', args=['arg1'])), "/init/f/arg1")
self.assertEqual(str(URL(a='init', c='default', f='index', args=['arg1'])), "/init/index/arg1")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['arg1'])), "/arg1")
self.assertEqual(str(URL(a='app', c='default', f='user', args=['arg1'])), "/user/arg1")
self.assertEqual(str(URL(a='app', c='default', f='user', args=['index'])), "/user/index")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['index'])), "/index/index")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['init'])), "/index/init")
self.assertEqual(str(URL(a='app', c='default', f='index', args=['ctr'])), "/index/ctr")
self.assertEqual(str(URL(a='app', c='ctr', f='index', args=['arg'])), "/ctr/index/arg")
self.assertEqual(str(URL(a='app', c='ctr', f='ctrf1', args=['arg'])), "/ctr/arg")
self.assertEqual(str(URL(a='app', c='ctr', f='ctrf1', args=['ctrf2'])), "/ctr/ctrf1/ctrf2")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['arg1'])), "/app2/arg1")
self.assertEqual(str(URL(a='app2', c='default', f='user', args=['arg1'])), "/app2/user/arg1")
self.assertEqual(str(URL(a='app2', c='default', f='user', args=['index'])), "/app2/user/index")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['index'])), "/app2/index/index")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['init'])), "/app2/index/init")
self.assertEqual(str(URL(a='app2', c='default', f='index', args=['ctr'])), "/app2/index/ctr")
# inbound
self.assertEqual(filter_url('http://d.com/arg'), "/app/default/index ['arg']")
self.assertEqual(filter_url('http://d.com/user'), "/app/default/user")
self.assertEqual(filter_url('http://d.com/user/arg'), "/app/default/user ['arg']")
self.assertEqual(filter_url('http://d.com/ctr'), "/app/ctr/ctrf1")
self.assertEqual(filter_url('http://d.com/ctr/arg'), "/app/ctr/ctrf1 ['arg']")
self.assertEqual(filter_url('http://d.com/app2/arg'), "/app2/default/index ['arg']")
self.assertEqual(filter_url('http://d.com/app2/user'), "/app2/default/user")
self.assertEqual(filter_url('http://d.com/app2/user/arg'), "/app2/default/user ['arg']")
self.assertEqual(filter_url('http://d.com/app2/ctr'), "/app2/ctr/index")
self.assertEqual(filter_url('http://d.com/app2/ctr/index/arg'), "/app2/ctr/index ['arg']")
self.assertEqual(filter_url('http://d.com/app2/ctr/arg'), "/app2/ctr/arg")
|
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
|
self.assertEqual(get_effective_router('a1').domains, None)
self.assertEqual(get_effective_router('a1').default_controller, "default")
self.assertEqual(get_effective_router('a2').default_application, None)
self.assertEqual(get_effective_router('a2').default_controller, "c2")
self.assertEqual(get_effective_router('a1').controllers, set(['c1a', 'c1b', 'default', 'static']))
self.assertEqual(get_effective_router('a2').controllers, set())
self.assertEqual(get_effective_router('a3').controllers, set(['c1', 'c2', 'static']))
self.assertEqual(get_effective_router('a4').functions, set(['f1', 'f2']))
self.assertEqual(get_effective_router('xx'), None)
def test_router_error(self):
'''
Test rewrite of HTTP errors
'''
router_err = dict()
|
|
|
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
|
self.assertEqual(get_effective_router('a1').domains, None)
self.assertEqual(get_effective_router('a1').default_controller, "default")
self.assertEqual(get_effective_router('a2').default_application, None)
self.assertEqual(get_effective_router('a2').default_controller, "c2")
self.assertEqual(get_effective_router('a1').controllers, set(['c1a', 'c1b', 'default', 'static']))
self.assertEqual(get_effective_router('a2').controllers, set())
self.assertEqual(get_effective_router('a3').controllers, set(['c1', 'c2', 'static']))
self.assertEqual(get_effective_router('a4').functions, dict(default=set(['f1', 'f2'])))
self.assertEqual(get_effective_router('xx'), None)
def test_router_error(self):
'''
Test rewrite of HTTP errors
'''
router_err = dict()
|