simply pass through any keyword arguments you like, just as you would to @expose(). See tests for examples.
32 lines
915 B
Python
32 lines
915 B
Python
from pecan import Pecan, expose, request, response, redirect
|
|
from webtest import TestApp
|
|
from json import dumps
|
|
|
|
|
|
class TestGeneric(object):
|
|
|
|
def test_simple_generic(self):
|
|
class RootController(object):
|
|
@expose(generic=True)
|
|
def index(self):
|
|
pass
|
|
|
|
@index.when(method='POST', template='json')
|
|
def do_post(self):
|
|
return dict(result='POST')
|
|
|
|
@index.when(method='GET')
|
|
def do_get(self):
|
|
return 'GET'
|
|
|
|
app = TestApp(Pecan(RootController()))
|
|
r = app.get('/')
|
|
assert r.status_int == 200
|
|
assert r.body == 'GET'
|
|
|
|
r = app.post('/')
|
|
assert r.status_int == 200
|
|
assert r.body == dumps(dict(result='POST'))
|
|
|
|
r = app.get('/do_get', status=404)
|
|
assert r.status_int == 404 |