def test_simple_http(self): root = ultramini.Resource() root.template = 'hello' site = ultramini.SiteMap(root) headers, result = sendreq(site, GET_TEMPLATE % ('/', )) assert result == 'hello', (site, result, headers)
def test_post_request(self): class Simple(ultramini.Resource): def post(self, req, form): return '/' headers, result = sendreq(ultramini.SiteMap(Simple()), POST_TEMPLATE % ('/', 0, '')) assert headers.startswith('HTTP/1.1 303')
def test_query_parameter(self): class Simple(ultramini.Resource): @ultramini.annotate(foo=str) def get_default(self, foo): assert foo == 'bar' root = Simple() headers, result = sendreq(ultramini.SiteMap(root), GET_TEMPLATE % ('/?foo=bar', )) assert headers.startswith("HTTP/1.1 200")
def test_header(self): class Simple(ultramini.Resource): @ultramini.arguments(ultramini.HEADER.host) def host(self, foo): assert foo == 'localhost' return "ok" template = host headers, result = sendreq(ultramini.SiteMap(Simple()), GET_TEMPLATE % ('/', )) assert result == 'ok'
def test_outgoing_header(self): class Simple(ultramini.Resource): @ultramini.annotate(req=ultramini.REQUEST) def get_default(self, req): req.set_header('Some-header', 'Some-value') assert req.has_key('Some-header') assert req.get_outgoing_header('Some-header') == ['Some-value'] return "ok" headers, result = sendreq(ultramini.SiteMap(Simple()), GET_TEMPLATE % ('/', )) self.assertEqual(result, 'ok') assert 'Some-header: Some-value'.lower() in headers.lower()
def test_cached_resource(self): class Simple(ultramini.Resource): template = 0 def willHandle(self, request): self.template = self.template + 1 return self sitemap = ultramini.SiteMap(Simple()) headers, result = sendreq(sitemap, GET_TEMPLATE % ('/', )) assert result == '1', ('Fail', result) headers, result = sendreq(sitemap, GET_TEMPLATE % ('/', )) assert result == '2', ('Fail', result)
def test_continuation_header(self): class Simple(ultramini.Resource): @ultramini.arguments(ultramini.HEADER.continuation) def continuation(self, foo): assert foo == "foo bar baz\n foo bar baz" return "ok" template = continuation headers, result = sendreq( ultramini.SiteMap(Simple()), """GET / HTTP/1.1\r Host: localhost\r Continuation: foo bar baz\r foo bar baz\r Another-Header: 1234-asdf\r \r """) self.assertEqual(result, 'ok')
def test_simple_not_found(self): root = ultramini.Resource() site = ultramini.SiteMap(root) headers, result = sendreq( site, GET_TEMPLATE % ('/asdfkjasdfhakshdfkhaqe/asdfhas/a.dhf', )) assert headers.startswith("HTTP/1.1 404"), ('Fail', headers, result)
def handle_resource(self, req, root): ultramini.SiteMap(root).match(req) req.resource.handle(req) return req.result()
def find_resource(self, path, root): req = loc(path=path) ultramini.SiteMap(root).match(req) return req.resource