Mercurial > piecrust2
annotate piecrust/wsgiutil/cwdapp.py @ 380:f33712c4cfab
routing: Fix bugs with matching URLs with correct route but missing metadata.
When matching a route like `/foo/%slug%` against an URL like `/foo`, the route
will (correctly) return a match, but it will be completely missing the `slug`
metadata, resulting in problems elsewhere. This change makes it so that any
missing route metadata will be filled in with an empty string.
And because this means generated URLs may differ from the incoming URL when
using trailing slashes (`/foo/` _vs._ `/foo`), we make the assert in the
chef server handle those discrepancies.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 10 May 2015 00:34:21 -0700 |
parents | d40b744a9d99 |
children |
rev | line source |
---|---|
376
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 # This is a utility module that can be used with any WSGI-compatible server |
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 # like Werkzeug or Gunicorn. It returns a WSGI app for serving a PieCrust |
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
3 # website located in the current working directory. |
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 import os |
379
d40b744a9d99
serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents:
378
diff
changeset
|
5 from piecrust.wsgiutil import get_app |
376
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 |
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 |
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 root_dir = os.getcwd() |
379
d40b744a9d99
serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents:
378
diff
changeset
|
9 app = get_app(root_dir) |
378
fe8a58817088
serve: Compatibility with `mod_wsgi`.
Ludovic Chabant <ludovic@chabant.com>
parents:
376
diff
changeset
|
10 # Add this for `mod_wsgi`. |
fe8a58817088
serve: Compatibility with `mod_wsgi`.
Ludovic Chabant <ludovic@chabant.com>
parents:
376
diff
changeset
|
11 application = app |
376
21687b933193
serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
12 |