498 lines
25 KiB
Python
498 lines
25 KiB
Python
from fastapi import HTTPException
|
|
from fastapi.testclient import TestClient
|
|
from tests.test_auth import test_register
|
|
|
|
|
|
def test_create_room_no_auth(client: TestClient, public=False):
|
|
r = client.post('/room', json={"name": "test_room",
|
|
"public": public}, params={'username': "lilian"})
|
|
print(r.json())
|
|
assert "id_code" in r.json()['room']
|
|
assert r.json()['member']['reconnect_code'] is not None
|
|
assert "id_code" in r.json()['member']
|
|
assert {"room": {**r.json()['room'], 'id_code': None}, "member": {**r.json()['member'], "reconnect_code": None, "id_code": None}} == {"room": {"id_code": None, "name": "test_room",
|
|
"public": public}, 'member': {"username": "lilian", "reconnect_code": None, "isUser": False, "isAdmin": True, "id_code": None}}
|
|
return r.json()
|
|
|
|
|
|
def test_create_room_no_auth_invalid(client: TestClient):
|
|
r = client.post('/room', json={"name": "test_room"*21,
|
|
"public": False}, params={'username': "lilian"*21})
|
|
print(r.json())
|
|
assert r.json() == {'detail': {'username_error': 'ensure this value has at most 20 characters',
|
|
'name_error': 'ensure this value has at most 20 characters'}}
|
|
|
|
|
|
def test_create_room_auth(client: TestClient, token=None):
|
|
if token is None:
|
|
token = test_register(client=client)['access']
|
|
r = client.post('/room', json={"name": "test_room",
|
|
"public": False}, headers={"Authorization": "Bearer " + token})
|
|
print(r.json())
|
|
assert "id_code" in r.json()['room']
|
|
assert "id_code" in r.json()['member']
|
|
assert {**r.json(), "room": {**r.json()['room'], 'id_code': None}} == {"room": {"id_code": None, "name": "test_room",
|
|
"public": False}, 'member': {"username": "lilian", "reconnect_code": "", "isUser": True, "isAdmin": True, "id_code": r.json()['member']['id_code']}}
|
|
return r.json()
|
|
|
|
|
|
def test_room_not_found(client: TestClient):
|
|
try:
|
|
with client.websocket_connect('/ws/room/eee') as r:
|
|
pass
|
|
except HTTPException as e:
|
|
assert True
|
|
except Exception:
|
|
assert False
|
|
|
|
|
|
def test_login_no_auth(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as ws:
|
|
ws.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
data = ws.receive_json()
|
|
assert "id_code" in data['data']['member']
|
|
assert data == {'type': "loggedIn", "data": {"member": {
|
|
"username": member['username'], "reconnect_code": member['reconnect_code'], "isAdmin": True, "isUser": False, "id_code": data['data']["member"]["id_code"]}}}
|
|
|
|
|
|
def test_login_no_auth_not_in_room(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as ws:
|
|
ws.send_json({"type": "login", "data": {
|
|
"reconnect_code": "lol"}})
|
|
data = ws.receive_json()
|
|
print(data)
|
|
assert data == {'type': "error", "data": {
|
|
"msg": "Utilisateur introuvable dans cette salle"}}
|
|
|
|
|
|
def test_login_auth(client: TestClient):
|
|
token = test_register(client=client)['access']
|
|
room = test_create_room_auth(client=client, token=token)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as ws:
|
|
ws.send_json({"type": "login", "data": {"token": token}})
|
|
data = ws.receive_json()
|
|
print(data)
|
|
assert "id_code" in data["data"]['member']
|
|
assert data == {'type': "loggedIn", "data": {"member": {
|
|
"username": member['username'], "isAdmin": True, "isUser": True, 'reconnect_code': "", "id_code": data['data']["member"]["id_code"]}}}
|
|
|
|
|
|
def test_login_auth_not_in_room(client: TestClient):
|
|
token = test_register(client=client, username="lilian2")['access']
|
|
room = test_create_room_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as ws:
|
|
ws.send_json({"type": "login", "data": {"token": token}})
|
|
data = ws.receive_json()
|
|
print(data)
|
|
assert data == {'type': "error", "data": {
|
|
"msg": "Utilisateur introuvable dans cette salle"}}
|
|
|
|
|
|
def test_join_auth(client: TestClient):
|
|
token = test_register(client, username="lilian2")['access']
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"token": token}})
|
|
mdata = member.receive_json()
|
|
|
|
assert "waiter_id" in mdata['data']['waiter']
|
|
assert mdata == {"type": "waiting", "data": {"waiter": {
|
|
"username": "lilian2", "waiter_id": mdata['data']['waiter']['waiter_id']}}}
|
|
|
|
admin.send_json({"type": "ping_room"})
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "waiter", 'data': {
|
|
"waiter": {"waiter_id": mdata['data']['waiter']['waiter_id'], "username": "lilian2"}}}
|
|
|
|
admin.send_json({"type": "accept", "data": {
|
|
"waiter_id": mdata['data']['waiter']['waiter_id']}})
|
|
mdata = member.receive_json()
|
|
print('MDATA', mdata)
|
|
assert mdata == {"type": "accepted", "data": {"member": {
|
|
"username": "lilian2", "isUser": True, "isAdmin": False, "reconnect_code": "", "id_code": mdata['data']["member"]["id_code"]}}}
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "joined", 'data': {
|
|
"member": {"reconnect_code": "", "username": "lilian2", "isUser": True, "isAdmin": False, "id_code": adata['data']["member"]["id_code"]}}}
|
|
admin.send_json({"type": "ping_room"})
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "ping", "data": {}}
|
|
def test_join_waiter_not_found(client: TestClient):
|
|
token = test_register(client, username="lilian2")['access']
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
admin.send_json({"type": "accept", "data": {"waiter_id": "OOOO"}})
|
|
data = admin.receive_json()
|
|
assert data == {"type": "error", "data": {"msg": "Utilisateur introuvable"}}
|
|
|
|
def test_join_no_auth(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json(
|
|
{"type": "join", "data": {"username": "member"}})
|
|
mdata = memberws.receive_json()
|
|
assert "waiter_id" in mdata['data']['waiter']
|
|
assert mdata == {"type": "waiting", "data": {"waiter": {
|
|
"username": "member", "waiter_id": mdata['data']['waiter']['waiter_id']}}}
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "waiter", 'data': {
|
|
"waiter": {"waiter_id": mdata['data']['waiter']['waiter_id'], "username": "member"}}}
|
|
|
|
admin.send_json({"type": "accept", "data": {
|
|
"waiter_id": mdata['data']['waiter']['waiter_id']}})
|
|
mdata = memberws.receive_json()
|
|
new_reconnect = mdata['data']['member']['reconnect_code']
|
|
assert 'reconnect_code' in mdata['data']['member']
|
|
assert mdata == {"type": "accepted", "data": {"member": {
|
|
"username": "member", "reconnect_code": new_reconnect, "isUser": False, "isAdmin": False, "id_code": mdata['data']["member"]["id_code"]}}}
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "joined", 'data': {
|
|
"member": {"reconnect_code": new_reconnect, "username": "member", "isUser": False, "isAdmin": False, "id_code": adata['data']["member"]["id_code"]}}}
|
|
admin.send_json({"type": "ping_room"})
|
|
mdata = memberws.receive_json()
|
|
assert mdata == {"type": "ping", "data": {}}
|
|
|
|
return {"room": room['room'], "members": [member['reconnect_code'], new_reconnect]}
|
|
|
|
|
|
def test_join_no_auth_username_error(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"username": "lilian"}})
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "error", "data": {
|
|
"msg": "Nom d'utilisateur invalide ou indisponible"}}
|
|
|
|
|
|
def test_join_no_auth_username_too_long(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"username": "lilian"*21}})
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "error", "data": {"msg": "Nom d'utilisateur invalide ou indisponible"}}
|
|
|
|
|
|
|
|
|
|
def test_join_auth_refused(client: TestClient):
|
|
token = test_register(client, username="lilian2")['access']
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"token": token}})
|
|
mdata = member.receive_json()
|
|
assert "waiter_id" in mdata['data']['waiter']
|
|
assert mdata == {"type": "waiting", "data": {"waiter": {
|
|
"username": "lilian2", "waiter_id": mdata['data']['waiter']['waiter_id']}}}
|
|
waiter_id = mdata['data']['waiter']['waiter_id']
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "waiter", 'data': {
|
|
"waiter": {"waiter_id": waiter_id, "username": "lilian2"}}}
|
|
admin.send_json({"type": "refuse", "data": {
|
|
"waiter_id": waiter_id}})
|
|
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "refused", "data": {
|
|
"waiter_id": waiter_id}}
|
|
|
|
|
|
def test_join_auth_in_room_yet(client: TestClient):
|
|
token = test_register(client, username="lilian")['access']
|
|
room = test_create_room_auth(client=client, token=token)
|
|
member = room['member']
|
|
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"token": token}})
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "loggedIn", "data": {"member": {
|
|
"username": "lilian", "isAdmin": True, "isUser": True, 'reconnect_code': "", "id_code": mdata['data']["member"]["id_code"]}}}
|
|
|
|
|
|
def test_join_auth_public(client: TestClient):
|
|
token = test_register(client, username="lilian2")['access']
|
|
room = test_create_room_no_auth(client=client, public=True)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"token": token}})
|
|
mdata = member.receive_json()
|
|
|
|
assert mdata == {"type": "accepted", "data": {"member": {
|
|
"username": "lilian2", "isUser": True, "isAdmin": False, "reconnect_code": "", "id_code": mdata['data']["member"]["id_code"]}}}
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "joined", 'data': {
|
|
"member": {"reconnect_code": "", "username": "lilian2", "isUser": True, "isAdmin": False, "id_code": mdata['data']["member"]["id_code"]}}}
|
|
admin.send_json({"type": "ping_room"})
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "ping", "data": {}}
|
|
|
|
|
|
def test_join_no_auth_public(client: TestClient):
|
|
room = test_create_room_no_auth(client=client, public=True)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"username": "member"}})
|
|
mdata = member.receive_json()
|
|
|
|
assert 'reconnect_code' in mdata['data']['member']
|
|
assert mdata == {"type": "accepted", "data": {"member": {
|
|
"username": "member", "reconnect_code": mdata['data']['member']['reconnect_code'], "isUser": False, "isAdmin": False, "id_code": mdata['data']["member"]["id_code"]}}}
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "joined", 'data': {
|
|
"member": {"reconnect_code": mdata['data']['member']['reconnect_code'], "username": "member", "isUser": False, "isAdmin": False, "id_code": mdata['data']["member"]["id_code"]}}}
|
|
|
|
member.send_json({"type": "update_groups"})
|
|
admin.send_json({"type": "ping_room"})
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "ping", "data": {}}
|
|
|
|
|
|
def test_join_auth_unauthorized(client: TestClient):
|
|
token = test_register(client, username="lilian2")['access']
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({"type": "join", "data": {"token": token}})
|
|
mdata = member.receive_json()
|
|
assert "waiter_id" in mdata['data']['waiter']
|
|
assert mdata == {"type": "waiting", "data": {"waiter": {
|
|
"username": "lilian2", "waiter_id": mdata['data']['waiter']['waiter_id']}}}
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {'type': "waiter", 'data': {
|
|
"waiter": {"waiter_id": mdata['data']['waiter']['waiter_id'], "username": "lilian2"}}}
|
|
|
|
member.send_json({"type": "refuse", "data": {
|
|
"waiter_id": mdata['data']['waiter']['waiter_id']}})
|
|
|
|
mdata = member.receive_json()
|
|
assert mdata == {"type": "error", "data": {
|
|
"msg": "Vous n'avez pas la permission de faire ca"}}
|
|
|
|
|
|
def test_connect_admin(client: TestClient):
|
|
room = test_join_no_auth(client=client)
|
|
members = room['members']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": members[0]}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as member:
|
|
member.send_json({'type': "login", "data": {
|
|
"reconnect_code": members[1]}})
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {"type": "connect", "data": {"member": {
|
|
"username": "member", "reconnect_code": members[1], "isAdmin": False, "isUser": False, "id_code": adata['data']["member"]["id_code"]}}}
|
|
|
|
|
|
def test_connect_member(client: TestClient):
|
|
room = test_join_no_auth(client=client)
|
|
members = room['members']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "login", "data": {
|
|
"reconnect_code": members[1]}})
|
|
memberws.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({'type': "login", "data": {
|
|
"reconnect_code": members[0]}})
|
|
|
|
mdata = memberws.receive_json()
|
|
assert mdata == {"type": "connect", "data": {"member": {
|
|
"username": "lilian", "reconnect_code": "", "isAdmin": True, "isUser": False, "id_code": mdata['data']["member"]["id_code"]}}}
|
|
|
|
def test_disconnect(client: TestClient):
|
|
room = test_join_no_auth(client=client)
|
|
members = room['members']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "login", "data": {
|
|
"reconnect_code": members[1]}})
|
|
memberws.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({'type': "login", "data": {
|
|
"reconnect_code": members[0]}})
|
|
memberws.receive_json()
|
|
admin.close()
|
|
|
|
mdata = memberws.receive_json()
|
|
assert mdata == {"type": "disconnect", "data": {"member": {
|
|
"username": "lilian", "reconnect_code": "", "isAdmin": True, "isUser": False, "id_code": mdata['data']["member"]["id_code"]}}}
|
|
def test_disconnect_waiter(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({'type': "join", "data": {
|
|
"username": "test"}})
|
|
mdata = memberws.receive_json()
|
|
admin.receive_json()
|
|
memberws.close()
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {"type": "disconnect_waiter", "data": {"waiter": {**mdata['data']['waiter']}}}
|
|
|
|
|
|
def test_leave(client: TestClient):
|
|
room = test_create_room_no_auth(client=client, public=True)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member["reconnect_code"]}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "join", "data": {
|
|
"username":"test"}})
|
|
m = memberws.receive_json()
|
|
admin.receive_json()
|
|
memberws.send_json({"type": "leave"})
|
|
data = memberws.receive_json()
|
|
assert data == {"type": "successfully_leaved", "data": {}}
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {"type": "leaved", "data": {"member": {
|
|
"username": "test", "reconnect_code": m["data"]['member']["reconnect_code"], "isAdmin": False, "isUser": False, "id_code": adata['data']["member"]["id_code"]}}}
|
|
|
|
|
|
def test_leave_not_connected(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
members = room['member']
|
|
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "leave"})
|
|
data = memberws.receive_json()
|
|
assert data == {"type": "error", "data": {
|
|
"msg": "Vous n'êtes connecté à aucune salle"}}
|
|
|
|
|
|
def test_leave_admin(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
member = room['member']
|
|
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member["reconnect_code"]}})
|
|
admin.receive_json()
|
|
admin.send_json({"type": "leave"})
|
|
data = admin.receive_json()
|
|
assert data == {"type": "error", "data": {
|
|
"msg": "Vous ne pouvez pas quitter une salle dont vous êtes l'administrateur"}}
|
|
|
|
|
|
def test_ban_anonymous(client: TestClient):
|
|
room = test_create_room_no_auth(client=client, public=True)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member['reconnect_code']}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "join", "data": {
|
|
"username": "test"}})
|
|
m = memberws.receive_json()
|
|
reconnect_code = m['data']['member']['reconnect_code']
|
|
id_code = m['data']['member']['id_code']
|
|
admin.receive_json()
|
|
admin.send_json({"type": "ban", "data": {"member_id": m['data']['member']['id_code']}})
|
|
mdata = memberws.receive_json()
|
|
assert mdata == {"type": "banned", "data": {}}
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {"type": "leaved", "data": {"member": {
|
|
"username": "test", "reconnect_code": reconnect_code, "isUser": False, "isAdmin": False, "id_code": id_code}}}
|
|
|
|
|
|
def test_ban_anonymous_unauthorized(client: TestClient):
|
|
room = test_create_room_no_auth(client=client, public=True)
|
|
members = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": members["reconnect_code"]}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "join", "data": {
|
|
"username": "test"}})
|
|
memberws.receive_json()
|
|
memberws.send_json({"type": "ban", "data": {"member_id": "OOO"}})
|
|
mdata = memberws.receive_json()
|
|
assert mdata == {"type": "error", "data": {
|
|
"msg": "Vous n'avez pas la permission de faire ca"}}
|
|
def test_ban_admin(client: TestClient):
|
|
room = test_create_room_no_auth(client=client)
|
|
members = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": members["reconnect_code"]}})
|
|
data = admin.receive_json()
|
|
admin.send_json({"type": "ban", "data": {"member_id": data['data']['member']['id_code']}})
|
|
a = admin.receive_json()
|
|
assert a == {'type': "error", "data": {
|
|
"msg": "Vous ne pouvez pas bannir un administrateur"}}
|
|
|
|
|
|
def test_ban_user(client: TestClient):
|
|
token = test_register(client=client, username="lilian2")['access']
|
|
room = test_create_room_no_auth(client=client, public=True)
|
|
member = room['member']
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as admin:
|
|
admin.send_json({"type": "login", "data": {
|
|
"reconnect_code": member["reconnect_code"]}})
|
|
admin.receive_json()
|
|
with client.websocket_connect(f"/ws/room/" + room['room']['id_code']) as memberws:
|
|
memberws.send_json({"type": "join", "data": {"token": token}})
|
|
m = memberws.receive_json()
|
|
admin.receive_json()
|
|
|
|
admin.send_json(
|
|
{"type": "ban", "data": {"member_id": m['data']['member']['id_code']}})
|
|
mdata = memberws.receive_json()
|
|
assert mdata == {"type": "banned", "data": {}}
|
|
|
|
adata = admin.receive_json()
|
|
assert adata == {"type": "leaved", "data": {"member": {
|
|
"username": "lilian2", "reconnect_code": "", "isUser": True, "isAdmin": False, "id_code": m['data']['member']['id_code']}}}
|