On Aug 8, 2010, at 8:31 AM, Jonathan Lundell wrote: > I've been advocating the use of doctests in routes.py to debug problems. > Here's another doctest you can use (I'll send a patch to Massimo that adds an > example). > >>>> compile_re('.*http://otherdomain.com.* (?P<any>.*)', >>>> '/app/ctr\g<any>')[0].pattern > '^.*http://otherdomain.com.* (?P<any>.*)$' >>>> compile_re('.*http://otherdomain.com.* (?P<any>.*)', '/app/ctr\g<any>')[1] > '/app/ctr\\\\g<any>' >>>> compile_re('/$c/$f', '/init/$c/$f')[0].pattern > '^.*?:https?://[^:/]+:[a-z]+ /(?P<c>[\\\\w_]+)/(?P<f>[\\\\w_]+)$' >>>> compile_re('/$c/$f', '/init/$c/$f')[1] > '/init/\\\\g<c>/\\\\g<f>' > > For the trunk version, the import line needs to change to this: > > from gluon.rewrite import select, load, filter_url, filter_out, > filter_err, compile_re > > Notice that the backslash escaping gets a little confusing. I can't figure > out how to use raw strings properly here; so it goes.
One more note. All the other doctests in routes.example.py use the patterns defined earlier in the file. The compile_re tests are entirely self-contained, so you can easily add them without any other editing. Just copy routes.example.py to, say, routes.test.py, and add some compile_re tests, and you're in business.