fix(test): FastAPI 0.87.0 - error fixes

FastAPI 0.87.0 switched to the httpx library for their TestClient

* allow_redirects is deprecated and replaced by follow_redirects

Signed-off-by: moson-mo <mo-son@mailbox.org>
This commit is contained in:
moson-mo 2022-11-24 22:23:37 +01:00
parent 512ba02389
commit 1216399d53
No known key found for this signature in database
GPG key ID: 4A4760AB4EE15296
8 changed files with 218 additions and 226 deletions

View file

@ -81,7 +81,11 @@ def setup(db_test):
def client():
from aurweb.asgi import app
yield TestClient(app=app)
client = TestClient(app=app)
# disable redirects for our tests
client.follow_redirects = False
yield client
@pytest.fixture
@ -151,7 +155,7 @@ def proposal(user, tu_user):
def test_tu_index_guest(client):
headers = {"referer": config.get("options", "aur_location") + "/tu"}
with client as request:
response = request.get("/tu", allow_redirects=False, headers=headers)
response = request.get("/tu", headers=headers)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
params = filters.urlencode({"next": "/tu"})
@ -162,7 +166,7 @@ def test_tu_index_unauthorized(client: TestClient, user: User):
cookies = {"AURSID": user.login(Request(), "testPassword")}
with client as request:
# Login as a normal user, not a TU.
response = request.get("/tu", cookies=cookies, allow_redirects=False)
response = request.get("/tu", cookies=cookies)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
assert response.headers.get("location") == "/"
@ -173,7 +177,7 @@ def test_tu_empty_index(client, tu_user):
# Make a default get request to /tu.
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
response = request.get("/tu", cookies=cookies, allow_redirects=False)
response = request.get("/tu", cookies=cookies)
assert response.status_code == int(HTTPStatus.OK)
# Parse lxml root.
@ -226,7 +230,6 @@ def test_tu_index(client, tu_user):
"/tu",
cookies=cookies,
params={"cby": "BAD!", "pby": "blah"},
allow_redirects=False,
)
assert response.status_code == int(HTTPStatus.OK)
@ -292,7 +295,7 @@ def test_tu_index(client, tu_user):
def test_tu_stats(client: TestClient, tu_user: User):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
response = request.get("/tu", cookies=cookies, allow_redirects=False)
response = request.get("/tu", cookies=cookies)
assert response.status_code == HTTPStatus.OK
root = parse_root(response.text)
@ -313,7 +316,7 @@ def test_tu_stats(client: TestClient, tu_user: User):
tu_user.InactivityTS = time.utcnow()
with client as request:
response = request.get("/tu", cookies=cookies, allow_redirects=False)
response = request.get("/tu", cookies=cookies)
assert response.status_code == HTTPStatus.OK
root = parse_root(response.text)
@ -361,7 +364,7 @@ def test_tu_index_table_paging(client, tu_user):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
response = request.get("/tu", cookies=cookies, allow_redirects=False)
response = request.get("/tu", cookies=cookies)
assert response.status_code == int(HTTPStatus.OK)
# Parse lxml.etree root.
@ -391,9 +394,7 @@ def test_tu_index_table_paging(client, tu_user):
# Now, get the next page of current votes.
offset = 10 # Specify coff=10
with client as request:
response = request.get(
"/tu", cookies=cookies, params={"coff": offset}, allow_redirects=False
)
response = request.get("/tu", cookies=cookies, params={"coff": offset})
assert response.status_code == int(HTTPStatus.OK)
old_rows = rows
@ -420,9 +421,7 @@ def test_tu_index_table_paging(client, tu_user):
offset = 20 # Specify coff=10
with client as request:
response = request.get(
"/tu", cookies=cookies, params={"coff": offset}, allow_redirects=False
)
response = request.get("/tu", cookies=cookies, params={"coff": offset})
assert response.status_code == int(HTTPStatus.OK)
# Do it again, we only have five left.
@ -471,7 +470,7 @@ def test_tu_index_sorting(client, tu_user):
# Make a default request to /tu.
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
response = request.get("/tu", cookies=cookies, allow_redirects=False)
response = request.get("/tu", cookies=cookies)
assert response.status_code == int(HTTPStatus.OK)
# Get lxml handles of the document.
@ -498,9 +497,7 @@ def test_tu_index_sorting(client, tu_user):
# Make another request; one that sorts the current votes
# in ascending order instead of the default descending order.
with client as request:
response = request.get(
"/tu", cookies=cookies, params={"cby": "asc"}, allow_redirects=False
)
response = request.get("/tu", cookies=cookies, params={"cby": "asc"})
assert response.status_code == int(HTTPStatus.OK)
# Get lxml handles of the document.
@ -573,7 +570,8 @@ def test_tu_index_last_votes(
def test_tu_proposal_not_found(client, tu_user):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
response = request.get("/tu", params={"id": 1}, cookies=cookies)
request.cookies = cookies
response = request.get("/tu", params={"id": 1}, follow_redirects=True)
assert response.status_code == int(HTTPStatus.NOT_FOUND)
@ -583,14 +581,12 @@ def test_tu_proposal_unauthorized(
cookies = {"AURSID": user.login(Request(), "testPassword")}
endpoint = f"/tu/{proposal[2].ID}"
with client as request:
response = request.get(endpoint, cookies=cookies, allow_redirects=False)
response = request.get(endpoint, cookies=cookies)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
assert response.headers.get("location") == "/tu"
with client as request:
response = request.post(
endpoint, cookies=cookies, data={"decision": False}, allow_redirects=False
)
response = request.post(endpoint, cookies=cookies, data={"decision": False})
assert response.status_code == int(HTTPStatus.SEE_OTHER)
assert response.headers.get("location") == "/tu"
@ -606,7 +602,9 @@ def test_tu_running_proposal(
proposal_id = voteinfo.ID
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
response = request.get(f"/tu/{proposal_id}", cookies=cookies)
response = request.get(
f"/tu/{proposal_id}", cookies=cookies, follow_redirects=True
)
assert response.status_code == int(HTTPStatus.OK)
# Alright, now let's continue on to verifying some markup.
@ -676,7 +674,9 @@ def test_tu_running_proposal(
# Make another request now that we've voted.
with client as request:
response = request.get("/tu", params={"id": voteinfo.ID}, cookies=cookies)
response = request.get(
"/tu", params={"id": voteinfo.ID}, cookies=cookies, follow_redirects=True
)
assert response.status_code == int(HTTPStatus.OK)
# Parse our new root.
@ -734,9 +734,7 @@ def test_tu_proposal_vote_not_found(client, tu_user):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
data = {"decision": "Yes"}
response = request.post(
"/tu/1", cookies=cookies, data=data, allow_redirects=False
)
response = request.post("/tu/1", cookies=cookies, data=data)
assert response.status_code == int(HTTPStatus.NOT_FOUND)
@ -777,9 +775,7 @@ def test_tu_proposal_vote_unauthorized(
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
data = {"decision": "Yes"}
response = request.post(
f"/tu/{voteinfo.ID}", cookies=cookies, data=data, allow_redirects=False
)
response = request.post(f"/tu/{voteinfo.ID}", cookies=cookies, data=data)
assert response.status_code == int(HTTPStatus.UNAUTHORIZED)
root = parse_root(response.text)
@ -788,9 +784,7 @@ def test_tu_proposal_vote_unauthorized(
with client as request:
data = {"decision": "Yes"}
response = request.get(
f"/tu/{voteinfo.ID}", cookies=cookies, data=data, allow_redirects=False
)
response = request.get(f"/tu/{voteinfo.ID}", cookies=cookies, params=data)
assert response.status_code == int(HTTPStatus.OK)
root = parse_root(response.text)
@ -808,9 +802,7 @@ def test_tu_proposal_vote_cant_self_vote(client, proposal):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
data = {"decision": "Yes"}
response = request.post(
f"/tu/{voteinfo.ID}", cookies=cookies, data=data, allow_redirects=False
)
response = request.post(f"/tu/{voteinfo.ID}", cookies=cookies, data=data)
assert response.status_code == int(HTTPStatus.BAD_REQUEST)
root = parse_root(response.text)
@ -819,9 +811,7 @@ def test_tu_proposal_vote_cant_self_vote(client, proposal):
with client as request:
data = {"decision": "Yes"}
response = request.get(
f"/tu/{voteinfo.ID}", cookies=cookies, data=data, allow_redirects=False
)
response = request.get(f"/tu/{voteinfo.ID}", cookies=cookies, params=data)
assert response.status_code == int(HTTPStatus.OK)
root = parse_root(response.text)
@ -840,9 +830,7 @@ def test_tu_proposal_vote_already_voted(client, proposal):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
data = {"decision": "Yes"}
response = request.post(
f"/tu/{voteinfo.ID}", cookies=cookies, data=data, allow_redirects=False
)
response = request.post(f"/tu/{voteinfo.ID}", cookies=cookies, data=data)
assert response.status_code == int(HTTPStatus.BAD_REQUEST)
root = parse_root(response.text)
@ -851,9 +839,7 @@ def test_tu_proposal_vote_already_voted(client, proposal):
with client as request:
data = {"decision": "Yes"}
response = request.get(
f"/tu/{voteinfo.ID}", cookies=cookies, data=data, allow_redirects=False
)
response = request.get(f"/tu/{voteinfo.ID}", cookies=cookies, params=data)
assert response.status_code == int(HTTPStatus.OK)
root = parse_root(response.text)
@ -884,12 +870,12 @@ def test_tu_addvote_unauthorized(
):
cookies = {"AURSID": user.login(Request(), "testPassword")}
with client as request:
response = request.get("/addvote", cookies=cookies, allow_redirects=False)
response = request.get("/addvote", cookies=cookies)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
assert response.headers.get("location") == "/tu"
with client as request:
response = request.post("/addvote", cookies=cookies, allow_redirects=False)
response = request.post("/addvote", cookies=cookies)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
assert response.headers.get("location") == "/tu"