示例#1
0
 def test_get_user_duplicate(self, test_app):
     with test_app.app_context():
         user_dict = api.get_user(TEST_USER['s_number'])
         user = UserDB.create(**user_dict)
         user_dup_dict = api.get_user(TEST_USER['s_number'])
         user_dup = UserDB.create(**user_dup_dict)
         assert user is user_dup
示例#2
0
 def test_list_all_users(self, test_app):
     with test_app.app_context():
         user2 = UserDB.create(**TEST_USER_2)
         user1 = UserDB.create(**TEST_USER_1)
         user_list = UserDB.list_all()
         assert len(
             user_list) == 2  # Make sure exactly two users are returned
         assert user1 == user_list[0]  # Make sure each user is in the list
         assert user2 == user_list[
             1]  # Also make sure the order is correct (ascending id)
示例#3
0
 def test_get_user(self, test_app):
     with test_app.app_context():
         user_dict = api.get_user(TEST_USER['s_number'])
         user = UserDB.create(**user_dict)
         for (key, value) in TEST_USER.items(
         ):  # Make sure all fields are stored correctly
             assert user.__getattribute__(key) == value
示例#4
0
def login():
    if request.method == 'GET':  # Load the login page to let users enter their s-number
        return render_template('login.jinja2')

    elif request.method == 'POST':  # Attempt to login the user
        s_number = request.form[
            's-number']  # Load the student number from the push form
        try:  # Attempt to find the user from Congressus
            user_dict = api.get_user(s_number=s_number)  # Create a User
        except api.UserNotFoundException as err:  # The user was not found
            flash('User ' + s_number + ' not found, try again.', 'error')
            return render_template('login.jinja2')
        except HTTPError as err:  # There was a connection error
            flash(str(err), 'error')
            return render_template('login.jinja2')

        # Add user to the database
        user = UserDB.create(**user_dict)

        # Add session variables to identify the user
        session['user_id'] = user.id
        session['user_first_name'] = user.first_name
        session['user_s_number'] = user.s_number

        return redirect(
            url_for('streeplijst.folder'))  # Redirect to the streeplijst
示例#5
0
 def test_update_user(self, test_app):
     with test_app.app_context():
         user = UserDB.create(**TEST_USER_1)
         updated_user = UserDB.update(**TEST_USER_UPDATED)
         for (key, value) in TEST_USER_UPDATED.items(
         ):  # Make sure all values are updated as expected
             assert updated_user.__getattribute__(key) == value
             assert user.__getattribute__(
                 key) == updated_user.__getattribute__(key)
示例#6
0
    def test_list_all_users(self, test_app):
        with test_app.app_context():
            user1_dict = api.get_user(TEST_USER['s_number'])
            user2_dict = api.get_user(TEST_USER_NO_SDD['s_number'])
            user1 = UserDB.create(**user1_dict)
            user2 = UserDB.create(**user2_dict)

            user_list = UserDB.list_all()

            assert len(
                user_list) == 2  # Make sure exactly two users are returned

            # Make sure all users are in the list and it is sorted correctly
            if user1.id < user2.id:  # id of user1 is lower, so user1 must appear first in the list
                assert user1 == user_list[0]
                assert user2 == user_list[1]
            else:  # id of user2 is lower so it must appear first in the list
                assert user2 == user_list[0]
                assert user1 == user_list[1]
示例#7
0
    def test_delete_user(self, test_app):
        with test_app.app_context():
            user = UserDB.create(**TEST_USER_1)
            get_user = UserDB.get(TEST_USER_1['id'])
            assert get_user is not None  # Make sure the user is retrieved

            deleted_user = UserDB.delete(TEST_USER_1['id'])
            assert user is deleted_user  # Make sure the same object is referenced

            get_user = UserDB.get(TEST_USER_1['id'])
            assert get_user is None  # Make sure the user is not retrieved
示例#8
0
 def test_create_quick_sale(self, test_app):
     with test_app.app_context():
         item = ItemDB.create(**TEST_ITEM)
         user = UserDB.create(**TEST_USER)
         sale = SaleDB.create_quick(quantity=1,
                                    item_id=item.id,
                                    user_id=user.id)
         for (key, value) in TEST_SALE.items(
         ):  # Make sure all fields are stored correctly
             assert sale.__getattribute__(key) == value
         assert sale.id == 1  # The ID autoincrements, starting at 1
         assert sale.status == Sale.STATUS_NOT_POSTED  # Test the status
         assert sale.api_id is None and sale.api_created is None and sale.error_msg is None  # Test None fields
示例#9
0
 def test_create_user_extra_fields(self, test_app):
     with test_app.app_context():
         user = UserDB.create(
             **TEST_USER_EXTRA_FIELDS
         )  # Create a user with fields which are not needed
         required_fields = ((key, value)
                            for (key,
                                 value) in TEST_USER_EXTRA_FIELDS.items()
                            if key != 'email')
         for (
                 key, value
         ) in required_fields:  # Make sure all fields are stored correctly
             assert user.__getattribute__(key) == value
         assert hasattr(user, 'email') is False
示例#10
0
 def test_get_user_by_s_number(self, test_app):
     with test_app.app_context():
         user = UserDB.create(**TEST_USER_1)
         other_user = UserDB.get_by_s_number(TEST_USER_1['s_number'])
         assert user is other_user  # Make sure both objects are the same instance
示例#11
0
 def test_create_user_duplicate(self, test_app):
     with test_app.app_context():
         user = UserDB.create(**TEST_USER_1)
         duplicate_user = UserDB.create(**TEST_USER_DUP)
         assert user is duplicate_user  # Make sure the same user is referenced in case of a duplicate
示例#12
0
 def test_create_user(self, test_app):
     with test_app.app_context():
         user = UserDB.create(**TEST_USER_1)
         for (key, value) in TEST_USER_1.items(
         ):  # Make sure all fields are stored correctly
             assert user.__getattribute__(key) == value