def test_is_admin(session, client): with session() as session: new_user_1 = register_user(session, 'especial1925', 'ABInBev', 'Grupo', 'Modelo') session.add(new_user_1) session.commit() # First user must always be admin even though we are asking for user perm_1 = set_user_permission(session, 'user', new_user_1.id) session.add(perm_1) session.commit() test_with_authenticated_user(session) admin = is_admin(session, new_user_1) assert admin new_user_2 = register_user(session, 'anheuserbusch', 'DillyDilly', 'Bud', 'Light') session.add(new_user_2) session.commit() perm_2 = set_user_permission(session, 'admin', new_user_2.id) session.add(perm_2) session.commit() # Now that there is a second user, change first user to 'user' change_user_permission(session, new_user_1.id) session.commit() admin = is_admin(session, new_user_1) assert not admin
def test_delete_user_bad_json(client, session): with session() as session: new_user = register_user( session, 'anheuserbusch', 'DillyDilly', 'Bud', 'Light') session.add(new_user) session.commit() perm = set_user_permission(session, 'admin', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) resp = client.delete('/admin', json={'bad_key': new_user.id}) assert resp.status_code == 400 assert resp.json == {'msg': 'A known value was not supplied'}
def test_patch_control(client, session): from app.main.admin import get_admin_control_by_name with session() as session: control_id = get_admin_control_by_name(session, 'new_users').id new_user = register_user( session, 'anheuserbusch', 'DillyDilly', 'Bud', 'Light') session.add(new_user) session.commit() perm = set_user_permission(session, 'admin', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) resp = client.patch('/admin', json={'control': control_id}) assert resp.status_code == 200 assert resp.json == { 'msg': f'Control ID: {control_id} successfull changed'}
def test_admin_page(client, session): with session() as session: new_user = register_user( session, 'sabmiller', 'ColdAsTheRockies', 'Coors', 'Light') session.add(new_user) session.commit() perm = set_user_permission(session, 'admin', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) resp = client.get('/admin') assert b'<title>Socks Chat | Admin</title>' in resp.data assert b'''<span class="horizontal"> new_users''' in resp.data assert b'''sabmiller''' in resp.data assert b'''Coors Light''' in resp.data assert b'''<span class="horizontal">\n new_users''' in resp.data
def test_user_already_logged_in(client, session): with session() as session: new_user = register_user( session, 'anheuserbusch', 'DillyDilly', 'Bud', 'Light') session.add(new_user) session.commit() perm = set_user_permission(session, 'user', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) with client.session_transaction() as f_session: f_session['username'] = '******' f_session['name'] = 'Bud Light' f_session['room'] = 'ABInBev' resp = client.get('/', follow_redirects=True) assert b'<title>Socks Chat | Chat</title>' in resp.data
def test_patch_user_bad_json(client, session): with session() as session: new_user = register_user( session, 'especial1925', 'ABInBev', 'Grupo', 'Modelo') session.add(new_user) session.commit() perm = set_user_permission(session, 'user', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) user_id = new_user.id with patch('app.main.routes.routes.change_user_permission', side_effect=BaseException('user_permission_err')): resp = client.patch( '/admin', json={'bad_key': user_id}, follow_redirects=True) assert resp.status_code == 400 assert resp.json == {'msg': 'A known value was not supplied'}
def test_patch_control_exception(client, session): from app.main.admin import get_admin_control_by_name with session() as session: control_id = get_admin_control_by_name(session, 'new_users').id new_user = register_user( session, 'especial1925', 'ABInBev', 'Grupo', 'Modelo') session.add(new_user) session.commit() perm = set_user_permission(session, 'user', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) with patch('app.main.routes.routes.get_admin_control_by_id', side_effect=Exception('admin_switch_err')): resp = client.patch( '/admin', json={'control': control_id}, follow_redirects=True) assert resp.status_code == 500 assert resp.json == { 'msg': 'Something went wrong changing the control'}
def test_delete_user(client, session): with session() as session: new_user = register_user( session, 'anheuserbusch', 'DillyDilly', 'Bud', 'Light') session.add(new_user) session.commit() perm = set_user_permission(session, 'admin', new_user.id) session.add(perm) session.commit() new_user = register_user( session, 'especial1925', 'ABInBev', 'Grupo', 'Modelo') session.add(new_user) session.commit() perm = set_user_permission(session, 'user', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) delete_id = new_user.id resp = client.delete('/admin', json={'user': delete_id}) assert resp.status_code == 200 assert resp.json == { 'msg': f'User with ID {delete_id} successfully deleted'}
def test_patch_user(client, session): with session() as session: new_user = register_user( session, 'anheuserbusch', 'DillyDilly', 'Bud', 'Light') session.add(new_user) session.commit() perm = set_user_permission(session, 'admin', new_user.id) session.add(perm) session.commit() new_user = register_user( session, 'especial1925', 'ABInBev', 'Grupo', 'Modelo') session.add(new_user) session.commit() perm = set_user_permission(session, 'user', new_user.id) session.add(perm) session.commit() test_with_authenticated_user(session) user_id = new_user.id resp = client.patch('/admin', json={'user': user_id}) assert resp.status_code == 200 assert resp.json == { 'msg': f'User permissions changed for ID {user_id}'}