Beispiel #1
0
def user():
    user = User(name="John",
                email="*****@*****.**",
                session_token="token")
    db.add(user)
    db.commit()

    return user
Beispiel #2
0
def test_result_incorrect_smaller(client):
    login(client)
    user = db.query(User).first()
    user.secret_number = 10

    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess": 20})
    assert b'Your guess is not correct... try something smaller' in response.data
Beispiel #3
0
def test_result_correct(client):
    login(client)
    user = db.query(User).first()
    user.secret_number = 10

    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess": 10})

    assert b'Correct! The secret number is 10' in response.data
Beispiel #4
0
def test_result_correct(client):
    client.post('/login', data={"name": "Test User", "email": "*****@*****.**",
                                "password": "******"}, follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/', data={"ugibanje": 22})

    assert b'Bravo, zadel si' in response.data
Beispiel #5
0
def test_result_incorrect_try_smaller(client):
    client.post('/login', data={"name": "Test User", "email": "*****@*****.**",
                                "password": "******"}, follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/', data={"ugibanje": 23})

    assert ("Number is too big" in str(response.data))
Beispiel #6
0
def test_result_incorrect_try_smaller(client):
    # create a user
    client.post('/login', data={"user-name": "Test User", "user-email": "*****@*****.**",
                                "user-password": "******"}, follow_redirects=True)

    # get user object from the database
    user = db.query(User).first()

    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess": 27})  # enter the wrong guess (too big)
    assert b'Your guess is not correct... try something smaller.' in response.data
def test_user_mock_db():

    user = Mock()

    user.name = "rubenXR"
    user.email = "*****@*****.**"
    user.password = "******"
    user.secret_number = "15"
    user.delete = False

    user = db.query(User).first()

    db.add(user)
    db.commit()
Beispiel #8
0
def admin_add_user():
    if not session.get('loggedin') or session.get('role') != 0:
        return redirect(url_for('login'))

    form = RegisterForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            username = form.username.data
            email = form.email.data
            role = form.role.data
            password = form.password.data

            password_hash = generate_password_hash(password, method='sha256')

            sql_query = '''INSERT 
                        INTO 
                        departments 
                        (dept_name,dept_email,password,role) values
                        (%s,%s,%s,%s)
                    '''
            try:
                cursor = db.cursor()
                cursor.execute(sql_query,
                               (username, email, password_hash, role))
                cursor.close()
                db.commit()

                cursor = db.cursor()
                cursor.execute(
                    'SELECT dept_id from departments where dept_name=%s',
                    (username))
                dept_id = cursor.fetchone()
                cursor.close()

            except Exception as e:
                db.rollback()
                print("Error while inserting new user", e)
            else:
                flash(f'Added user {username}.', 'success')

            if role == '1':
                dept.append([dept_id[0], username, email])

            return redirect(url_for('admin_list_users'))

    return render_template('admin_add_user.html',
                           form=form,
                           logout=url_for('logout'),
                           back=url_for('admin_list_users'))
Beispiel #9
0
def test_result_correct(client):
    # create a user
    client.post('/login', data={"user-name": "Test User", "user-email": "*****@*****.**",
                                "user-password": "******"}, follow_redirects=True)

    # get the first (and only) user object from the database
    user = db.query(User).first()

    # set the secret number to 22, so that you can make a success "guess" in the test.
    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess": 22})  # enter the correct guess
    assert b'Correct! The secret number is 22' in response.data
Beispiel #10
0
def remove_role(login, role):
    """[-login] LOGIN [-role] ROLE_NAME
    Remove a role from the user
    """
    from main import db
    from bundles.users.models import User

    user = User.by_login(login)
    if not user:
        print 'User `%s` not found.' % login.encode('utf8')
        return
    user.remove_role(role)
    db.commit()
    print 'User `%s` no longer has the `%s` role.' % (
        login.encode('utf8'), role.encode('utf8'))
Beispiel #11
0
def remove_role(login, role):
    """[-login] LOGIN [-role] ROLE_NAME
    Remove a role from the user
    """
    from main import db
    from bundles.users.models import User

    user = User.by_login(login)
    if not user:
        print 'User `%s` not found.' % login.encode('utf8')
        return
    user.remove_role(role)
    db.commit()
    print 'User `%s` no longer has the `%s` role.' % (login.encode('utf8'),
                                                      role.encode('utf8'))
Beispiel #12
0
def update_user(login, **data):
    """[-login] LOGIN [key=value, ...]
    Changes the password of an existing user."""
    from main import db
    from bundles.users.models import User

    user = User.by_login(login)
    if not user:
        print 'User `%s` not found.' % login.encode('utf8')
        return

    for key, val in data.items():
        setattr(user, key, val)
    db.commit()
    print 'User `%s` updated.' % login.encode('utf8')
Beispiel #13
0
def update_user(login, **data):
    """[-login] LOGIN [key=value, ...]
    Changes the password of an existing user."""
    from main import db
    from bundles.users.models import User

    user = User.by_login(login)
    if not user:
        print 'User `%s` not found.' % login.encode('utf8')
        return

    for key, val in data.items():
        setattr(user, key, val)
    db.commit()
    print 'User `%s` updated.' % login.encode('utf8')
Beispiel #14
0
def create_admin():
    """Create the admin user (if it doesn't already exist)"""
    from pyceo import prompt
    from .manage import create_user

    u = User.by_login(u"admin")
    if not u:
        print "Creating the `admin` user…"
        email = prompt(">>> `admin` email?\n")
        create_user(u"admin", "admin", fullname=u"Admin", email=email)
        u = User.by_login(u"admin")

    u.add_role(u"admin")
    db.commit()
    return u
Beispiel #15
0
def add_role(login, role):
    """[-login] LOGIN [-role] ROLE_NAME
    Adds a role to the user
    """
    from main import db
    from bundles.users.models import User

    user = User.by_login(login)
    if not user:
        print 'User `%s` not found.' % login.encode('utf8')
        return
    user.add_role(role)
    db.commit()
    print 'User `%s` has now the `%s` role.' % (
        login.encode('utf8'), role.encode('utf8'))
Beispiel #16
0
def create_admin():
    """Create the admin user (if it doesn't already exist)"""
    from pyceo import prompt
    from .manage import create_user

    u = User.by_login(u'admin')
    if not u:
        print 'Creating the `admin` user…'
        email = prompt('>>> `admin` email?\n')
        create_user(u'admin', 'admin', fullname=u'Admin', email=email)
        u = User.by_login(u'admin')

    u.add_role(u'admin')
    db.commit()
    return u
Beispiel #17
0
def add_role(login, role):
    """[-login] LOGIN [-role] ROLE_NAME
    Adds a role to the user
    """
    from main import db
    from bundles.users.models import User

    user = User.by_login(login)
    if not user:
        print 'User `%s` not found.' % login.encode('utf8')
        return
    user.add_role(role)
    db.commit()
    print 'User `%s` has now the `%s` role.' % (login.encode('utf8'),
                                                role.encode('utf8'))
def test_secret_number_correct(client):
    client.post('/login',
                data={
                    "user-name": "ruben",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 30
    db.add(user)
    db.commit()

    response = client.post('/result', data={"num_user": 30})
    assert b'Enhorabuena!! El numero correcto es: 30' in response.data
Beispiel #19
0
def test_result_correct(client):
    client.post("/login",
                data={
                    "user-name": "Test123",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 17
    db.add(user)
    db.commit()

    response = client.post("/result", data={"quess": 17})
    assert b'Ci' in response.data
Beispiel #20
0
def test_result_incorrect_try_smaller(client):
    client.post('/login',
                data={
                    "user-name": "Test User",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess": 13})
    assert b'your guess is not correct... try something smaller.' in response.data
Beispiel #21
0
def test_result_try_lower(client):
    client.post('/login',
                data={
                    "user-name": "user",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 2

    db.add(user)
    db.commit()

    response = client.post('/result', data={"quess": 28})
    assert b'Twoja liczba jest zbyt mala' in response.data
Beispiel #22
0
def test_result_correct(client):
    # create a user
    client.post('/login',
                data={
                    "user-name": "Test User",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    user = db.query(User).first()

    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess":
                                            22})  # enter the correct guess
    assert b'Correct! The secret number is 22' in response.data
Beispiel #23
0
def test_result_te_klein(client):
    # create a user
    client.post('/login',
                data={
                    "user-name": "TestUser",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    # get the first (and only) user object from the database
    user = db.query(User).first()

    # set the secret number to 22, so that you can make a success "guess" in the test.
    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess": 20})  # guess is too small
    assert b'try something bigger.' in response.data
Beispiel #24
0
def delete_user(dept_id):
    if not session.get('loggedin') or session.get('role') != 0:
        return redirect(url_for('login'))
    try:
        sql_query = '''DELETE FROM departments WHERE dept_id=%s'''

        cursor = db.cursor()
        cursor.execute(sql_query, (dept_id, ))
        cursor.close()
        db.commit()

        for ele in dept:
            if str(ele[0]) == dept_id:
                dept.remove(ele)

    except Exception as e:
        db.rollback()
        print("Error while deleting departments", e)
        flash("Deletion unsuccessful", "danger")
    return redirect(url_for('admin_list_users'))
Beispiel #25
0
def test_result_out_of_bound_high(client):
    # create a user
    client.post('/login',
                data={
                    "user-name": "TestUser",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    # get the first (and only) user object from the database
    user = db.query(User).first()

    # set the secret number to 22, so that you can make a success "guess" in the test.
    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess":
                                            31})  # guess is out of bound
    assert b'Het getal moet tussen 1 en 30 liggen.' in response.data
Beispiel #26
0
def test_result_geen_getal(client):
    # create a user
    client.post('/login',
                data={
                    "user-name": "TestUser",
                    "user-email": "*****@*****.**",
                    "user-password": "******"
                },
                follow_redirects=True)

    # get the first (and only) user object from the database
    user = db.query(User).first()

    # set the secret number to 22, so that you can make a success "guess" in the test.
    user.secret_number = 22
    db.add(user)
    db.commit()

    response = client.post('/result', data={"guess":
                                            "Axel"})  # guess is geen getal
    assert b'Dat was geen (geheel) getal.' in response.data
Beispiel #27
0
def delete_file(file_id):
    if not session.get('loggedin') or session.get('role') != 0:
        return redirect(url_for('login'))
    try:
        os.remove(os.getcwd() + '/files/original/' + file_id + '.pdf')
        os.remove(os.getcwd() + '/static/files/' + file_id + '.pdf')
        os.remove(os.getcwd() + '/static/files/' + file_id + '.tex')
        shutil.rmtree(os.getcwd() + '/files/images/' + file_id)

        sql_query = '''DELETE FROM transactions WHERE file_id=%s'''

        cursor = db.cursor()
        cursor.execute(sql_query, (file_id, ))
        cursor.close()
        db.commit()

        flash("Deleted file with File ID " + file_id, "success")
    except Exception as e:
        db.rollback()
        print("Error while deleting transactions", e)
        flash("Deletion unsuccessful", "danger")
    except:
        flash("Deletion unsuccessful", "danger")
    return redirect(url_for('admin_file_history'))
DESCR = "List of mountains by elevation"

print("################    DB TESTS   ###################")
# Provided DB tests
## No buckets to begin with
assert (len(db.getBuckets()) == 0)
## Adding a bucket
db.addBucket(id=BUCKET_ID, passwordHash=PASSWORD_HASH)
assert (len(db.getBuckets()) == 1)
bucket = db.getBucket(BUCKET_ID)
assert (bucket is not None)
assert (bucket.id == BUCKET_ID)
assert (bucket.passwordHash == PASSWORD_HASH)
assert (db.getBucket(BUCKET_ID + "bah") is None)
assert (db.getBuckets()[0] is bucket)
db.commit()
## Deleting the bucket
db.deleteBucket(bucket)
bucket = db.getBucket(BUCKET_ID)
assert (bucket is None)
db.commit()
## Re-adding the bucket to use in further tests
bucket = db.addBucket(id=BUCKET_ID, passwordHash=PASSWORD_HASH)
## Adding a shortcut
shortcut = db.addShortcut(SHORTCUT_HASH, bucket, LINK, DESCR)
assert (shortcut is not None)
assert (shortcut.linkHash == SHORTCUT_HASH)
assert (shortcut.bucket is bucket)
assert (shortcut.link == LINK)
assert (shortcut.description == DESCR)
assert (len(bucket.shortcuts) == 1)
Beispiel #29
0
def admin_modify_user(username):
    if not session.get('loggedin') or session.get('role') != 0:
        return redirect(url_for('login'))

    form = ModifyForm()

    if request.method == 'POST':
        #insert
        email = form.email.data
        password = form.password.data

        if password != '':
            password_hash = generate_password_hash(password, method='sha256')

            sql_query = '''UPDATE  
                        departments SET 
                        dept_email = %s, password = %s 
                        where dept_name = %s
                    '''
            try:
                cursor = db.cursor()
                cursor.execute(sql_query, (
                    email,
                    password_hash,
                    username,
                ))
                cursor.close()
                db.commit()
            except Exception as e:
                db.rollback()
                print("Error while modifying user", e)
            else:
                flash(f'Modified user {username}.', 'success')

        else:

            sql_query = '''UPDATE  
                        departments SET 
                        dept_email = %s
                        where dept_name = %s
                    '''
            try:
                cursor = db.cursor()
                cursor.execute(sql_query, (
                    email,
                    username,
                ))
                cursor.close()
                db.commit()
            except Exception as e:
                db.rollback()
                print("Error while modifying user", e)
            else:
                flash(f'Modified user {username}.', 'success')

        for dep in dept:
            if dep[1] == username:
                dep[2] = email

        return redirect(url_for('admin_list_users'))

    cursor = db.cursor()
    cursor.execute(
        'SELECT dept_id,dept_name,dept_email FROM departments where dept_name = %s',
        (username, ))
    departments_data = cursor.fetchone()
    cursor.close()
    form.username.data = username
    form.email.data = departments_data[2]

    return render_template('admin_modify_user.html',
                           form=form,
                           logout=url_for('logout'),
                           back=url_for('admin_list_users'))
Beispiel #30
0
 def delete(self):
     self.deleted = True
     db.commit()
Beispiel #31
0
 def restore(self):
     self.deleted = False
     db.commit()
Beispiel #32
0
 def restore(self):
     self.deleted = False
     db.commit()
Beispiel #33
0
 def delete(self):
     self.deleted = True
     db.commit()