test_admin_api/test_users: decouple user creation and deletion

- remove hardcoding of 'big_girl' username on test_list_users
This commit is contained in:
Luna 2019-04-22 01:11:34 -03:00
parent aff4653454
commit 644d755332
1 changed files with 38 additions and 17 deletions

View File

@ -22,6 +22,8 @@ import secrets
import pytest import pytest
from tests.common import login from tests.common import login
from tests.credentials import CREDS
async def _search(test_cli, *, username='', discrim='', token=None): async def _search(test_cli, *, username='', discrim='', token=None):
if token is None: if token is None:
@ -40,8 +42,7 @@ async def _search(test_cli, *, username='', discrim='', token=None):
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_list_users(test_cli): async def test_list_users(test_cli):
"""Try to list as many users as possible.""" """Try to list as many users as possible."""
# NOTE: replace here if admin username changes resp = await _search(test_cli, username=CREDS['admin']['username'])
resp = await _search(test_cli, username='big_girl')
assert resp.status_code == 200 assert resp.status_code == 200
rjson = await resp.json rjson = await resp.json
@ -49,11 +50,8 @@ async def test_list_users(test_cli):
assert rjson assert rjson
@pytest.mark.asyncio async def _setup_user(test_cli, *, token=None) -> dict:
async def test_create_delete(test_cli): token = token or await login('admin', test_cli)
"""Create a user. Then delete them."""
token = await login('admin', test_cli)
genned = secrets.token_hex(7) genned = secrets.token_hex(7)
resp = await test_cli.post('/api/v6/admin/users', headers={ resp = await test_cli.post('/api/v6/admin/users', headers={
@ -69,8 +67,35 @@ async def test_create_delete(test_cli):
assert isinstance(rjson, dict) assert isinstance(rjson, dict)
assert rjson['username'] == genned assert rjson['username'] == genned
return rjson
async def _del_user(test_cli, user_id, *, token=None):
"""Delete a user."""
token = token or await login('admin', test_cli)
resp = await test_cli.delete(f'/api/v6/admin/users/{user_id}', headers={
'Authorization': token
})
assert resp.status_code == 200
rjson = await resp.json
assert isinstance(rjson, dict)
assert rjson['new']['id'] == user_id
assert rjson['old']['id'] == rjson['new']['id']
@pytest.mark.asyncio
async def test_create_delete(test_cli):
"""Create a user. Then delete them."""
token = await login('admin', test_cli)
rjson = await _setup_user(test_cli, token=token)
genned = rjson['username']
genned_uid = rjson['id'] genned_uid = rjson['id']
try:
# check if side-effects went through with a search # check if side-effects went through with a search
resp = await _search(test_cli, username=genned, token=token) resp = await _search(test_cli, username=genned, token=token)
@ -78,14 +103,10 @@ async def test_create_delete(test_cli):
rjson = await resp.json rjson = await resp.json
assert isinstance(rjson, list) assert isinstance(rjson, list)
assert rjson[0]['id'] == genned_uid assert rjson[0]['id'] == genned_uid
finally:
await _del_user(test_cli, genned_uid, token=token)
# delete
resp = await test_cli.delete(f'/api/v6/admin/users/{genned_uid}', headers={
'Authorization': token
})
assert resp.status_code == 200 async def test_user_update(test_cli):
rjson = await resp.json """Test user update."""
assert isinstance(rjson, dict) pass
assert rjson['new']['id'] == genned_uid
assert rjson['old']['id'] == rjson['new']['id']