from paste.fixture import TestApp from rhubarbtart import TartRootController, expose, request class SimpleRespond(TartRootController): def respond(self, *args, **kwargs): return 'Testing' respond.exposed = True def index(self): return 'Should never get here' index.exposed = True class RESTRespond(TartRootController): def respond(self, *args, **kwargs): try: verb = getattr(self, request.method) except AttributeError: raise HTTPMethodNotAllowed() return verb(**kwargs) respond.exposed = True def GET(self): return 'GET Request' def POST(self): return 'POST Request' simplerespondtest = TestApp(SimpleRespond()) restrespondtest = TestApp(RESTRespond()) def test_simplerespond(): res = simplerespondtest.get('/') assert 'Testing' in res def test_restrespond(): res = restrespondtest.get('/') assert 'GET' in res res = restrespondtest.post('/') assert 'POST' in res