def test_value(): context = make_context('GET') path = '/users/name/$value' urlpath.parse(path, context) assert unicode(context['sqlobj']) == unicode( select().select_from(users).column(users.c.name)) assert 'Content-Type' in context['response_headers'] assert context['response_headers']['Content-Type'] == 'text/plain'
def parse(self, path, http_verb, headers=None, query_args=None, payload=None): context = create_context(self.tables, http_verb, headers, payload) urlpath.parse(path, context) if query_args: urlquery.parse(context, query_args) if headers: urlheaders.parse(context) context['sqlobj'] = validate_and_cleanup(context['sqlobj'], payload) try: context['payload'] = self.query(context['sqlobj']) except NoContent as e: e.code = context['response_status'] raise e return self.render(context)
def test_raiserpe(verb, path): context = make_context(verb) with pytest.raises(RequestParseError): urlpath.parse(path, context)
def test_raise404(verb, path): context = make_context(verb) with pytest.raises(NotFoundException): urlpath.parse(path, context)
def test_expected(verb, path, query): context = make_context(verb) urlpath.parse(path, context) assert unicode(context['sqlobj']) == query