1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
from paste.urlparser import *
from fixture import fake_request
def path(name):
return os.path.join(os.path.dirname(os.path.abspath(__file__)),
'urlparser_data', name)
def make_parser(name):
return URLParser(path(name), name, {'index_names': ['index', 'Main']})
def test_find_file():
p = make_parser('find_file')
res = fake_request(p, '/')
assert 'index1' in res
assert res.header('content-type') == 'text/plain'
res = fake_request(p, '/index')
assert 'index1' in res
assert res.header('content-type') == 'text/plain'
res = fake_request(p, '/index.txt')
assert 'index1' in res
assert res.header('content-type') == 'text/plain'
res = fake_request(p, '/test2.html')
assert 'test2' in res
assert res.header('content-type') == 'text/html'
def test_deep():
p = make_parser('deep')
res = fake_request(p, '/')
assert 'index2' in res
res = fake_request(p, '/sub')
assert res.status_int == 301
print res
assert res.header('location') == 'http://localhost/sub/'
assert 'href="http://localhost/sub/"' in res
res = fake_request(p, '/sub/')
assert 'index3' in res
def test_python():
p = make_parser('python')
res = fake_request(p, '/simpleapp')
res.all_ok()
assert 'test1' in res
assert res.header('test-header') == 'TEST!'
assert res.header('content-type') == 'text/html'
res = fake_request(p, '/stream')
res.all_ok()
assert 'test2' in res
res = fake_request(p, '/sub/simpleapp')
res.all_ok()
assert 'subsimple' in res
def test_hook():
p = make_parser('hook')
res = fake_request(p, '/bob/app')
res.all_ok()
assert 'user: bob' in res
res = fake_request(p, '/tim/')
res.all_ok()
assert 'index: tim' in res
def test_not_found_hook():
p = make_parser('not_found')
res = fake_request(p, '/simple/notfound')
assert res.status_int == 200
assert 'not found' in res
res = fake_request(p, '/simple/found')
res.all_ok()
assert 'is found' in res
res = fake_request(p, '/recur/__notfound')
assert res.status_int == 404
# @@: It's unfortunate that the original path doesn't actually show up
assert '/recur/notfound' in res
res = fake_request(p, '/recur/__isfound')
assert res.status_int == 200
assert 'is found' in res
res = fake_request(p, '/user/list')
res.all_ok()
assert 'user: None' in res
res = fake_request(p, '/user/bob/list')
assert res.status_int == 200
assert 'user: bob' in res
|