Breaking : migrate your tests that use the TestDomain.client method following the instructions here https://github.com/Kludex/bump-testclient Squashed commit of the following: commit0417f27b3f
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 11:08:44 2023 +0100 [deps] starlette 0.23 commit552f00a65b
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:59:42 2023 +0100 [deps] starlette 0.22 commitaefe448717
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:55:45 2023 +0100 [tests][fix] compares the json interpreted value instead of the string commit01333a200c
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:55:20 2023 +0100 [testing] changes from requests to httpx for Starlette TestClient (breaks) commitf3784fab7f
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:54:10 2023 +0100 [deps][breaking] starlette 0.21 commit717d3f8bd6
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:26:31 2023 +0100 [responses] use a wrapper function for exception handling (fix starlette 0.20) commitd0876e45da
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:25:21 2023 +0100 [deps][breaking] starlette 0.20 commit6504191c53
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:12:51 2023 +0100 [deps] starlette 0.19 commit7b639a8dc2
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:11:14 2023 +0100 [deps] starlette 0.18 commit20bd9077a4
Author: Maxime Alves LIRMM <maxime.alves@lirmm.fr> Date: Sat Jan 14 10:07:48 2023 +0100 pipenv update
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from starlette.testclient import TestClient
|
|
from starlette.middleware.base import BaseHTTPMiddleware
|
|
from unittest.mock import patch
|
|
from halfapi.lib.domain_middleware import DomainMiddleware
|
|
|
|
def test_init():
|
|
with patch('starlette.middleware.base.BaseHTTPMiddleware.__init__') as init:
|
|
mw = DomainMiddleware('app', 'domain')
|
|
init.assert_called_once_with('app')
|
|
assert mw.domain == 'domain'
|
|
assert mw.request == None
|
|
|
|
def test_call(application_debug):
|
|
c = TestClient(application_debug)
|
|
r = c.request('get', '/abc/alphabet')
|
|
assert r.status_code == 200
|
|
assert r.headers['x-domain'] == 'dummy_domain'
|
|
assert r.headers['x-acl'] == 'public'
|
|
|
|
r = c.request('get', '/arguments')
|
|
assert r.status_code == 400
|
|
assert r.headers['x-domain'] == 'dummy_domain'
|
|
assert r.headers['x-acl'] == 'public'
|
|
assert 'foo' in r.headers['x-args-required']
|
|
assert 'bar' in r.headers['x-args-required']
|
|
assert r.headers['x-args-optional'] == 'x'
|
|
|
|
c = TestClient(application_debug)
|
|
r = c.request('post', '/arguments')
|
|
assert r.status_code == 400
|
|
assert r.headers['x-domain'] == 'dummy_domain'
|
|
assert r.headers['x-acl'] == 'public'
|
|
assert 'foo' in r.headers['x-args-required']
|
|
assert 'baz' in r.headers['x-args-required']
|
|
assert r.headers['x-args-optional'] == 'truebidoo'
|
|
|
|
|