François KUBLER
e427e38da8
Simplified the Unauthorized.__init__
signature.
...
It doesn't really make sense to have a `realm` parameter in the method signature.
Instead, one can simply set the realm in the `challenge` dict if necessary.
Also fixed the tests accordingly (and added a new one for "Bearer" auth-scheme).
2017-06-29 12:34:52 +02:00
François KUBLER
1f24abc3d2
Fixed support for "Bearer" and "Token" auth-schemes.
...
Removed the test for "Authentication: Bearer Token <TOKEN>" which was not supposed to exist (see https://github.com/channelcat/sanic/pull/821 )
Also added a call to `split` when retrieving the token value to handle cases where there are leading or trailing spaces.
2017-06-29 10:23:49 +02:00
François
76e62779ba
Merge branch 'master' into forbidden-exception
2017-06-28 17:25:40 +02:00
Yun Xu
221cf235b5
fix a unit test
2017-06-25 01:03:28 -07:00
Yun Xu
7720e31a31
add unit test
2017-06-25 00:51:59 -07:00
Eli Uriegas
dbcbf12456
Merge pull request #811 from Frzk/bearer-support
...
Added support for 'Authorization: Bearer <TOKEN>' header...
2017-06-23 10:32:21 -07:00
Eli Uriegas
c04b44057c
Merge pull request #813 from Frzk/unauthorized-exception
...
Added an Unauthorized exception
2017-06-23 10:30:51 -07:00
François KUBLER
60aa60f48e
Fixed the test for the new Unauthorized exception.
2017-06-23 17:16:31 +02:00
François KUBLER
2848d7c80e
Added a Forbidden exception
...
Also added a small test.
2017-06-23 16:44:57 +02:00
François KUBLER
cf1713b085
Added a Unauthorized exception.
...
Also added a few tests related to this new exception.
2017-06-23 16:12:15 +02:00
7
f049a4ca67
Recycling gunicorn worker ( #800 )
...
* add recycling feature to gunicorn worker
* add unit tests
* add more unit tests, and remove redundant trigger_events call
* fixed up unit tests
* make flake8 happy
* address feedbacks
* make flake8 happy
* add doc
2017-06-22 13:26:50 -07:00
François KUBLER
55f860da2f
Added support for 'Authorization: Bearer <TOKEN>' header in Request.token
property.
...
Also added a test case for that kind of header.
2017-06-22 18:11:23 +02:00
Yun Xu
20138ee85f
add match_info to request
2017-06-17 09:47:58 -07:00
Yun Xu
ce2df8030c
quick fix for test_gunicorn_worker test
2017-06-11 09:06:48 -07:00
Yun Xu
6a80bdafa6
add unit tests
2017-06-10 09:48:30 -07:00
Yun Xu
24b946e850
make flake8 happy
2017-06-09 08:43:23 -07:00
Yun Xu
236daf48ff
add unit tests
2017-06-09 08:42:48 -07:00
Yun Xu
3802f8ff65
unit tests
2017-06-08 17:25:22 -07:00
Yun Xu
81889fd7a3
add unit tests
2017-06-07 20:48:07 -07:00
Miroslav Batchkarov
ddd7145153
check json is None if body is not JSON
2017-06-07 10:03:27 +01:00
Miroslav Batchkarov
199fa50a9d
also store json result in local request
2017-06-05 16:24:23 +01:00
Eli Uriegas
48de321869
Merge pull request #697 from 38elements/stream
...
Add Request.stream
2017-05-24 16:22:52 -07:00
messense
3eed81c1eb
Add a simple integration test for Gunicorn worker
2017-05-23 11:04:27 +08:00
Raphael Deem
4b80ffb9eb
Merge pull request #740 from r0fls/739
...
add abort function
2017-05-21 02:20:02 -07:00
Raphael Deem
9efa7c116d
remove redundant code; decode response
2017-05-20 23:27:00 -07:00
Raphael Deem
5d9c8d59a0
add abort() test
2017-05-20 14:43:57 -07:00
Ashley Sommer
5c5656f981
Moved file_stream tests to test_responses.py
2017-05-20 09:41:36 +10:00
Ashley Sommer
181edb7235
Test file()
and file_stream()
response helpers.
...
Added test for `file()` response helper and `file_stream()` response helper.
2017-05-19 13:01:21 +10:00
Raphael Deem
0e4aaf8856
Merge pull request #731 from jrocketfingers/fix/token-missing-auth-headers
...
Check that the Authorization headers are actually provided.
2017-05-17 13:10:12 -07:00
Johnny
58bae83558
Add a regression test.
2017-05-17 11:15:45 +02:00
messense
66fcb0cc8f
Add py3*-no-ext test env
2017-05-15 10:10:50 +08:00
38elements
6a14e49479
Replace stream decorator to stream parameter
2017-05-09 22:31:15 +09:00
38elements
4d4f38fb35
is_request_stream for CompositionView and HTTPMethodView
2017-05-09 01:04:03 +09:00
38elements
0b53c413a7
Add stream decorator for HTTPMethodView
2017-05-07 21:33:15 +09:00
38elements
931397c7e1
Add stream for CompositionView
2017-05-07 18:38:48 +09:00
38elements
ef2cc7ebf5
Add Request.stream
2017-05-07 18:38:48 +09:00
38elements
25037006bf
Remove utils.py
2017-05-04 15:52:18 +09:00
Alec Buckenheimer
69511c2783
added exception chain rendering in debug #675
2017-05-01 12:56:33 -04:00
38elements
ab8f616385
Add test for uri_template
2017-04-30 21:57:32 +09:00
Raphael Deem
a0cba1aee1
accept token directly in auth header
2017-04-21 22:36:45 -07:00
messense
35b92e1511
Add path type for router
2017-04-13 11:34:35 +08:00
Raphael Deem
7e3496f8aa
Merge pull request #614 from dkruchinin/middleware
...
Response middleware should be called even if server replies with an error
2017-04-06 11:49:44 -07:00
Dan Kruchinin
46dbaf95a6
Response middleware should be called even if server replies with error
2017-04-04 15:55:43 +01:00
Jeong YunWon
429e90183b
Add #379 again and make related test rework
...
Original PR: https://github.com/channelcat/sanic/pull/379
2017-04-03 18:56:39 +09:00
Raphael Deem
06d46d56cd
Merge pull request #602 from jkbbwr/fix/env-install
...
Flake8 cleanup. Setup environmental variables.
2017-03-31 10:42:21 -07:00
Jakob Bowyer
edd8770c67
Restored tests to upstream/master
2017-03-31 08:53:46 +01:00
Jakob Bowyer
22699db855
Moved skips to seperate pull request
2017-03-29 09:16:53 +01:00
Eli Uriegas
f0a55b5cbb
Fix line length again...
2017-03-28 22:51:23 -05:00
Eli Uriegas
3a8cfb1f45
Make these tests not so far apart
2017-03-28 22:51:23 -05:00
Eli Uriegas
dcc19d17d4
Lock to aiohttp 1.3.5 for now
2017-03-28 22:51:23 -05:00
Eli Uriegas
511998d8e1
Merge pull request #573 from r0fls/env-config
...
allow setting config from individual env variables
2017-03-28 22:24:37 -05:00
Jakob Bowyer
42ba5298a7
Flake8 cleanup. Setup environmental variables.
...
Skipping broken tests unrelated.
2017-03-28 10:50:09 +01:00
Raphael Deem
c5b50fe3cf
allow setting config from individual env variables
2017-03-25 17:45:55 -07:00
Raphael Deem
179606feb1
Merge pull request #590 from r0fls/blueprint-strict-slash
...
add blueprint strict_slashes
2017-03-23 18:42:21 -07:00
Raphael Deem
5d293df64b
add blueprint strict_slashes
2017-03-23 18:37:06 -07:00
Raphael Deem
9774661cfe
Merge pull request #580 from skytoup/master
...
Fix testing not support binary file
2017-03-23 12:22:08 -07:00
skytoup
fdbf452ced
1. try...catch aiohttp encode response body to text in test_client
...
2. add tests static binary file
2017-03-23 15:22:00 +08:00
Eli Uriegas
5577838905
Hotfixes tests failing from URL object change
...
aiohttp decided to use yarl for their new URL objects so that they
aren't plain strings anymore which means that this single test fails.
Not a huge change but this should fix the testing suite.
2017-03-22 16:21:35 -05:00
Raphael Deem
46677e69ce
accept strict_slash routes
2017-03-16 11:46:07 -07:00
Anton Zhyrnyi
410f86c960
fix for docs&tests
2017-03-14 20:53:58 +02:00
Raphael Deem
88bf78213f
Merge pull request #512 from subyraman/fix-url-building
...
Fix `request.url` and other url properties
2017-03-10 00:38:16 -08:00
Raphael Deem
c9ce33dfe6
Merge pull request #524 from r0fls/exception-list
...
allow exceptions to be a list
2017-03-10 00:35:38 -08:00
Raphael Deem
90138c4bae
return valid json in request.json
2017-03-07 18:03:45 -08:00
Raphael Deem
86c5a569d5
allow exceptions to be a list
2017-03-07 16:22:23 -08:00
Eli Uriegas
19592e8eea
Merge pull request #473 from subyraman/explore-streams-v2
...
Add `stream` method for streaming content, add docs and examples
2017-03-05 17:51:44 -08:00
Eli Uriegas
8e6678d526
Merge pull request #469 from miguelgrinberg/websocket-support
...
websocket support
2017-03-05 17:42:49 -08:00
Suby Raman
f0e818a28c
add host test
2017-03-03 13:32:32 -05:00
Suby Raman
b40f30f2e5
fix tests
2017-03-03 11:49:35 -05:00
Suby Raman
1fbde87ec2
initial commit
2017-03-03 11:44:50 -05:00
Miguel Grinberg
f90288f5dc
websocket routes in blueprints
2017-02-27 22:35:28 -08:00
Miguel Grinberg
3bf79898d9
websocket unit test
2017-02-27 22:35:28 -08:00
Raphael Deem
21fb1dff7e
fix routing issue with slashes
2017-02-27 20:01:11 -08:00
Eli Uriegas
d015d6b103
Merge pull request #476 from seemethere/inject_app_into_request
...
Inject app into request object
2017-02-23 09:12:41 -06:00
messense
91b2b40b9a
Fix test cases for requests post
2017-02-23 10:36:08 +08:00
Eli Uriegas
56ecb6a3ea
Inject app into request object
...
Allows for injection of the app object into the request object through
the request handler.
This allows for users to setup things like database connections etc. in
listeners and then utilize them throughout the their various route
handlers.
Usage is fairly simple like so:
```python
@app.get('/')
async def handler(request):
request.app.anything
```
Name is up in the air but I'll leave this up for a few days and I'll
change it if we get a consensus
2017-02-22 11:34:14 -06:00
Eli Uriegas
64f73f624f
Merge pull request #471 from r0fls/vhost-default
...
allow default vhost
2017-02-22 11:08:28 -06:00
Suby Raman
d8a6d7e02f
response.write should be synchronous for performance reasons
2017-02-22 10:42:16 -05:00
Suby Raman
4e8aac4b41
rebase
2017-02-21 11:05:06 -05:00
Raphael Deem
9c72b557ec
allow default vhost
2017-02-20 16:52:36 -08:00
Raphael Deem
207ec1e032
route logic for trailing slash
2017-02-20 16:11:28 -08:00
Suby Raman
3b68dc72e7
rework testing
2017-02-14 14:51:20 -05:00
Eli Uriegas
286dc3c32b
Merge pull request #399 from lixxu/master
...
improve url_for to support multi values and special options
2017-02-14 10:27:54 -06:00
lixxu
4839ede64f
update test for url_for and update routing.md doc
2017-02-14 10:26:30 +08:00
Raphael Deem
7a3f5d508b
fix merge conflicts
2017-02-13 14:19:44 -08:00
Eli Uriegas
1660041470
Merge pull request #408 from agoose77/master
...
Use app decorator instead of run arguments for before_start
2017-02-13 12:54:46 -06:00
Suby Raman
051ff2b325
remove repr stuff
2017-02-13 11:50:09 -05:00
Suby Raman
4d6f9ffd7c
rebase
2017-02-13 11:45:55 -05:00
Suby Raman
d614823013
rebase
2017-02-13 11:38:28 -05:00
Raphael Deem
b5e46e83e2
ensure_future -> add_task
2017-02-12 12:29:12 -08:00
Raphael Deem
94b2352c2c
add ensure_future method
2017-02-11 17:40:17 -08:00
Angus Hollands
2d5fd2fe1c
fix test
2017-02-11 14:35:44 +00:00
Angus Hollands
b5e50ecb75
Use app decorator instead of run arguments for before_start
...
Mirror listener of blueprints
2017-02-11 14:30:17 +00:00
lixxu
cf2a363e5e
improve url_for to support multi values for one arg, add _anchor/_external/_scheme options
2017-02-09 16:44:23 +08:00
Eli Uriegas
579afe012b
Fixes errors related to #378
2017-02-08 19:59:34 -06:00
Eli Uriegas
eb059183f7
Merge branch 'master' into master
2017-02-08 19:37:32 -06:00
Eli Uriegas
a5a7490bca
Merge pull request #379 from youknowone/exception
...
Let exception handler handle inherited exceptions
2017-02-08 19:20:42 -06:00
Eli Uriegas
6724d8131c
Merge pull request #387 from subyraman/url-for-v3
...
Add `url_for` method for simple routes, blueprints, HTTPMethodView
2017-02-08 19:20:09 -06:00
Jeong YunWon
413c92c631
Let exception handler handle inherited exceptions
...
Original sanic exception handler only could handle exact matching
exceptions. New `lookup` method will provide ability to looking up
their ancestors without additional cost of performance.
2017-02-07 21:08:31 +09:00
Jeong YunWon
a15ee3ad06
Fix sanic_endpoint_test working with redirects
...
Before fix, it raises error like:
```
tests/test_utils.py F
================================= FAILURES =================================
______________________________ test_redirect _______________________________
app = <sanic.sanic.Sanic object at 0x1045fda20>, method = 'get', uri = '/1', gather_request = True, debug = False
server_kwargs = {}, request_args = (), request_kwargs = {}
_collect_request = <function sanic_endpoint_test.<locals>._collect_request at 0x1045ec950>
_collect_response = <function sanic_endpoint_test.<locals>._collect_response at 0x1045ec7b8>
def sanic_endpoint_test(app, method='get', uri='/', gather_request=True,
debug=False, server_kwargs={},
*request_args, **request_kwargs):
results = []
exceptions = []
if gather_request:
def _collect_request(request):
results.append(request)
app.request_middleware.appendleft(_collect_request)
async def _collect_response(sanic, loop):
try:
response = await local_request(method, uri, *request_args,
**request_kwargs)
results.append(response)
except Exception as e:
exceptions.append(e)
app.stop()
app.run(host=HOST, debug=debug, port=PORT,
after_start=_collect_response, **server_kwargs)
if exceptions:
raise ValueError("Exception during request: {}".format(exceptions))
if gather_request:
try:
> request, response = results
E ValueError: too many values to unpack (expected 2)
sanic/utils.py:47: ValueError
During handling of the above exception, another exception occurred:
utils_app = <sanic.sanic.Sanic object at 0x1045fda20>
def test_redirect(utils_app):
"""Test sanic_endpoint_test is working for redirection"""
> request, response = sanic_endpoint_test(utils_app, uri='/1')
tests/test_utils.py:33:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
app = <sanic.sanic.Sanic object at 0x1045fda20>, method = 'get', uri = '/1', gather_request = True, debug = False
server_kwargs = {}, request_args = (), request_kwargs = {}
_collect_request = <function sanic_endpoint_test.<locals>._collect_request at 0x1045ec950>
_collect_response = <function sanic_endpoint_test.<locals>._collect_response at 0x1045ec7b8>
def sanic_endpoint_test(app, method='get', uri='/', gather_request=True,
debug=False, server_kwargs={},
*request_args, **request_kwargs):
results = []
exceptions = []
if gather_request:
def _collect_request(request):
results.append(request)
app.request_middleware.appendleft(_collect_request)
async def _collect_response(sanic, loop):
try:
response = await local_request(method, uri, *request_args,
**request_kwargs)
results.append(response)
except Exception as e:
exceptions.append(e)
app.stop()
app.run(host=HOST, debug=debug, port=PORT,
after_start=_collect_response, **server_kwargs)
if exceptions:
raise ValueError("Exception during request: {}".format(exceptions))
if gather_request:
try:
request, response = results
return request, response
except:
raise ValueError(
"Request and response object expected, got ({})".format(
> results))
E ValueError: Request and response object expected, got ([{}, {}, {}, <ClientResponse(http://127.0.0.1:42101/3 ) [200 OK]>
E <CIMultiDictProxy('Content-Type': 'text/plain; charset=utf-8', 'Content-Length': '2', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=1')>
E ])
sanic/utils.py:52: ValueError
```
2017-02-05 13:57:04 +09:00
Suby Raman
f9056099f9
all works
2017-02-02 12:52:48 -05:00