Skip to content
This repository has been archived by the owner on Dec 19, 2017. It is now read-only.

Commit

Permalink
Merge 9e28327 into bd19e9c
Browse files Browse the repository at this point in the history
  • Loading branch information
Tobias Günther committed Dec 11, 2013
2 parents bd19e9c + 9e28327 commit 89ac2e0
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 19 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Authors
In order of contribution:

* Daniel Truemper `@truemped <http://twitter.com/truemped>`_
* Tobias Guenther `@tobigue <http://twitter.com/tobigue>`_
* Tobias Guenther `@tobigue_ <http://twitter.com/tobigue_>`_


License
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@

install_requires=[
'tornado >= 3.1.0',
'schematics == 0.6.0',
'schematics == 0.9-4',
'scales == 1.0.3',
],

Expand Down
2 changes: 1 addition & 1 deletion supercell/api/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,4 @@ def consume(self, handler, model):
.. seealso:: :py:mod:`supercell.api.provider.ProviderBase.provide`
'''
# TODO error if no request body is set
return model(**json.loads(handler.request.body))
return model(json.loads(handler.request.body))
3 changes: 2 additions & 1 deletion supercell/api/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,5 @@ def provide(self, model, handler):
.. seealso:: :py:mod:`supercell.api.provider.ProviderBase.provide`
'''
handler.write(model.validate())
model.validate()
handler.write(model.to_primitive())
4 changes: 2 additions & 2 deletions supercell/api/requesthandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ def _execute_method(self):
except NoConsumerFound:
# TODO return available consumer types?!
raise HTTPError(406)
except ValueError:
raise HTTPError(400)
except StandardError as e:
raise HTTPError(400, reason=unicode(e))

if verb in ['get', 'head']:
# check if there is caching information stored with the handler
Expand Down
15 changes: 10 additions & 5 deletions test/test_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,26 @@ class MyHandler(RequestHandler):

@s.async
def get(self, *args, **kwargs):
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))


@provides(s.MediaType.ApplicationJson, default=True)
class MyExtremeCachingHandler(RequestHandler):

@s.async
def get(self, *args, **kwargs):
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))


@provides(s.MediaType.ApplicationJson, default=True)
class MyPrivateCaching(RequestHandler):

@s.async
def get(self, *args, **kwargs):
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))

@provides(s.MediaType.ApplicationJson, default=True)
class CachingWithYielding(RequestHandler):
Expand All @@ -72,7 +75,8 @@ def get(self, *args, **kwargs):
assert result, 'yes'
result = yield gen.Task(self.an_engine)
assert result, 'yes again'
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))

@gen.coroutine
def a_coroutine(self):
Expand All @@ -88,7 +92,8 @@ class CachingWithoutDecorator(RequestHandler):

@s.async
def get(self, *args, **kwargs):
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))


class TestCacheDecorator(AsyncHTTPTestCase):
Expand Down
16 changes: 11 additions & 5 deletions test/test_requesthandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,26 @@ class SimpleMessage(Model):
message = StringType()
number = IntType()

class Options:
serialize_when_none=False


@provides(s.MediaType.ApplicationJson)
class MyHandler(RequestHandler):

@s.async
def get(self, *args, **kwargs):
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))


@provides(s.MediaType.ApplicationJson, default=True)
class MyHandlerWithDefault(RequestHandler):

@s.async
def get(self, *args, **kwargs):
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))


@consumes(s.MediaType.ApplicationJson, SimpleMessage)
Expand All @@ -58,7 +63,8 @@ class MyEchoHandler(RequestHandler):
def get(self, *args, **kwargs):
q = self.get_argument('q')
# query solr:
raise s.Return(SimpleMessage(doc_id='test456', message='q: %s' % q))
raise s.Return(SimpleMessage({"doc_id": 'test456',
"message": 'q: %s' % q}))

@s.async
def post(self, *args, **kwargs):
Expand Down Expand Up @@ -119,8 +125,8 @@ class EncodingTestingHandler(s.RequestHandler):

@s.async
def get(self, *args, **kwargs):
r = SimpleMessage(doc_id='test123',
message='args=%s; kwargs=%s' % (args, kwargs))
r = SimpleMessage({"doc_id": 'test123',
"message": 'args=%s; kwargs=%s' % (args, kwargs)})
raise s.Return(r)


Expand Down
4 changes: 2 additions & 2 deletions test/test_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ class MyHandler(s.RequestHandler):
def get(self):
self.logger.info('Holy moly')
self.logger.info('That worked')
raise s.Return(SimpleModel(msg='Holy moly'))
raise s.Return(SimpleModel({"msg": 'Holy moly'}))

@s.async
def post(self, doc_id, model=None):
self.logger.info('Holy moly')
raise s.Return(SimpleModel(msg='Holy moly'))
raise s.Return(SimpleModel({"msg": 'Holy moly'}))
assert isinstance(self.environment, Environment)
assert isinstance(self.config, tornado.options.options)
raise s.OkCreated({'docid': 123})
Expand Down
3 changes: 2 additions & 1 deletion test/test_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ class MyHandler(s.RequestHandler):
def get(self, *args, **kwargs):
future = self._long_method()
assert future.result() == 'TEST'
raise s.Return(SimpleMessage(doc_id='test123', message='A test'))
raise s.Return(SimpleMessage({"doc_id": 'test123',
"message": 'A test'}))

@s.latency
@s.metered
Expand Down

0 comments on commit 89ac2e0

Please sign in to comment.