|
1 | 1 | import aiohttp
|
2 | 2 | import asyncio
|
3 | 3 | import pytest
|
4 |
| -from aiohttp import helpers, web |
| 4 | +from aiohttp import helpers, hdrs, web |
5 | 5 |
|
6 | 6 |
|
7 | 7 | @pytest.mark.run_loop
|
@@ -283,3 +283,46 @@ def handler(request):
|
283 | 283 | yield from asyncio.sleep(0.1, loop=loop)
|
284 | 284 | assert resp.closed
|
285 | 285 | assert resp.exception() is None
|
| 286 | + |
| 287 | + |
| 288 | +@pytest.mark.run_loop |
| 289 | +def test_override_default_headers(create_app_and_client, loop): |
| 290 | + |
| 291 | + @asyncio.coroutine |
| 292 | + def handler(request): |
| 293 | + assert request.headers[hdrs.SEC_WEBSOCKET_VERSION] == '8' |
| 294 | + ws = web.WebSocketResponse() |
| 295 | + yield from ws.prepare(request) |
| 296 | + |
| 297 | + ws.send_str('answer') |
| 298 | + yield from ws.close() |
| 299 | + return ws |
| 300 | + |
| 301 | + app, client = yield from create_app_and_client() |
| 302 | + app.router.add_route('GET', '/', handler) |
| 303 | + headers = {hdrs.SEC_WEBSOCKET_VERSION: '8'} |
| 304 | + resp = yield from client.ws_connect('/', headers=headers) |
| 305 | + msg = yield from resp.receive() |
| 306 | + assert msg.data == 'answer' |
| 307 | + yield from resp.close() |
| 308 | + |
| 309 | + |
| 310 | +@pytest.mark.run_loop |
| 311 | +def test_additional_headers(create_app_and_client, loop): |
| 312 | + |
| 313 | + @asyncio.coroutine |
| 314 | + def handler(request): |
| 315 | + assert request.headers['x-hdr'] == 'xtra' |
| 316 | + ws = web.WebSocketResponse() |
| 317 | + yield from ws.prepare(request) |
| 318 | + |
| 319 | + ws.send_str('answer') |
| 320 | + yield from ws.close() |
| 321 | + return ws |
| 322 | + |
| 323 | + app, client = yield from create_app_and_client() |
| 324 | + app.router.add_route('GET', '/', handler) |
| 325 | + resp = yield from client.ws_connect('/', headers={'x-hdr': 'xtra'}) |
| 326 | + msg = yield from resp.receive() |
| 327 | + assert msg.data == 'answer' |
| 328 | + yield from resp.close() |
0 commit comments