author | Tero Marttila <terom@fixme.fi> |
Mon, 16 Feb 2009 02:55:17 +0200 | |
changeset 136 | c69a176b3620 |
parent 135 | 19ff083c2870 |
permissions | -rw-r--r-- |
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
1 |
""" |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
Our custom WSGI application |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
""" |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
4 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
5 |
from qmsk.web import wsgi |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
6 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
7 |
import urls, error |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
8 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
9 |
# our custom app with custom error() method |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
10 |
class Application (wsgi.Application) : |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
11 |
def __init__ (self) : |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
12 |
""" |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
13 |
Construct wsgi.Application with our URLMapper |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
14 |
""" |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
15 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
16 |
super(Application, self).__init__(urls.mapper) |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
17 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
18 |
def handle_error (self, exc_info, env, start_response) : |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
19 |
""" |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
20 |
Use error.build_error and return that |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
21 |
""" |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
22 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
23 |
# get info |
135
19ff083c2870
pimp mah error messages, it has a full link to the Trac with pre-filled title, traceback, url, hg revision fields
Tero Marttila <terom@fixme.fi>
parents:
134
diff
changeset
|
24 |
status, content_type, body = error.build_error(env=env) |
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
25 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
26 |
# headers |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
27 |
start_response(status, [('Content-type', content_type)], exc_info) |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
28 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
29 |
# body |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
30 |
return body |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
31 |