예제 #1
0
    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
예제 #2
0
    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'}
예제 #3
0
    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'}
예제 #4
0
    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
예제 #5
0
    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
예제 #6
0
    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'}
예제 #7
0
    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'}
예제 #8
0
    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'}
예제 #9
0
    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}'}