Added exception tests and updated project description

This commit is contained in:
Channel Cat 2016-10-14 03:37:40 -07:00
parent a74ab9bd18
commit 2cfce77328
4 changed files with 76 additions and 3 deletions

View File

@ -39,6 +39,7 @@ app.run(host="0.0.0.0", port=8000)
* [Middleware](docs/routing.md) * [Middleware](docs/routing.md)
* [Request Data](docs/request_data.md) * [Request Data](docs/request_data.md)
* [Exceptions](docs/exceptions.md) * [Exceptions](docs/exceptions.md)
* [Contributing](docs/contributing.md)
* [License](LICENSE) * [License](LICENSE)
## TODO: ## TODO:

View File

@ -10,7 +10,7 @@ setup(
license='BSD', license='BSD',
author='Channel Cat', author='Channel Cat',
author_email='channelcat@gmail.com', author_email='channelcat@gmail.com',
description='A microframework based on uvloop and httptools', description='A microframework based on uvloop, httptools, and learnings of flask',
packages=['sanic'], packages=['sanic'],
platforms='any', platforms='any',
install_requires=[ install_requires=[

View File

@ -29,7 +29,7 @@ def sanic_endpoint_test(app, method='get', uri='/', gather_request=True, *reques
exceptions.append(e) exceptions.append(e)
app.stop() app.stop()
app.run(host='0.0.0.0', port=42101, debug=True, after_start=_collect_response) app.run(host=HOST, port=42101, after_start=_collect_response)
if exceptions: if exceptions:
raise ValueError("Exception during request: {}".format(exceptions)) raise ValueError("Exception during request: {}".format(exceptions))
@ -39,7 +39,7 @@ def sanic_endpoint_test(app, method='get', uri='/', gather_request=True, *reques
request, response = results request, response = results
return request, response return request, response
except: except:
raise ValueError("request and response object expected, got ({})".format(results[0].text)) raise ValueError("request and response object expected, got ({})".format(results))
else: else:
try: try:
return results[0] return results[0]

72
tests/test_exceptions.py Normal file
View File

@ -0,0 +1,72 @@
from json import loads as json_loads, dumps as json_dumps
from sanic import Sanic
from sanic.response import json, text
from sanic.exceptions import InvalidUsage, ServerError, NotFound
from helpers import sanic_endpoint_test
# ------------------------------------------------------------ #
# GET
# ------------------------------------------------------------ #
def test_exception_response():
app = Sanic('test_text')
@app.route('/')
def handler(request):
return text('OK')
@app.route('/error')
def handler_error(request):
raise ServerError("OK")
@app.route('/404')
def handler_404(request):
raise NotFound("OK")
@app.route('/invalid')
def handler_invalid(request):
raise InvalidUsage("OK")
request, response = sanic_endpoint_test(app)
assert response.status == 200
assert response.text == 'OK'
request, response = sanic_endpoint_test(app, uri='/error')
assert response.status == 500
request, response = sanic_endpoint_test(app, uri='/invalid')
assert response.status == 400
request, response = sanic_endpoint_test(app, uri='/404')
assert response.status == 404
def test_exception_handler():
app = Sanic('test_text')
@app.route('/1')
def handler_1(request):
raise InvalidUsage("OK")
@app.route('/2')
def handler_2(request):
raise ServerError("OK")
@app.route('/3')
def handler_3(request):
raise NotFound("OK")
@app.exception(NotFound, ServerError)
def handler_exception(request, exception):
return text("OK")
request, response = sanic_endpoint_test(app, uri='/1')
assert response.status == 400
request, response = sanic_endpoint_test(app, uri='/2')
assert response.status == 200
assert response.text == 'OK'
request, response = sanic_endpoint_test(app, uri='/3')
assert response.status == 200
request, response = sanic_endpoint_test(app, uri='/random')
assert response.status == 200
assert response.text == 'OK'