def test_message_and_user(client):
    message1 = Message()
    sender1 = User()
    receiver_a = User()
    receiver_b = User()

    sender1.sent_messages.append(message1)
    receiver_a.received_messages.append(message1)
    receiver_b.received_messages.append(message1)

    assert message1 == sender1.sent_messages[0]
    assert sender1 == message1.sender

    assert message1 == receiver_a.received_messages[0]
    assert message1 == receiver_b.received_messages[0]
    assert receiver_a == message1.receivers[0]
    assert receiver_b == message1.receivers[1]

    # Second sender
    message2 = Message()
    sender2 = User()

    sender2.sent_messages.append(message2)
    receiver_a.received_messages.append(message2)

    assert message2 == sender2.sent_messages[0]
    assert sender2 == message2.sender

    assert message2 == receiver_a.received_messages[1]
    assert receiver_a == message2.receivers[0]
Exemple #2
0
def initdb(mode):
    app = create_app(mode)
    with app.app_context():
        db.create_all()
        admin = User(username='******',
                     email='*****@*****.**',
                     privileges=PrivilegesEnum.ADMIN)
        admin.set_password('AdminPassword0')
        db.session.add(admin)
        db.session.commit()
Exemple #3
0
def local_client():
    if os.path.isdir(Config.STATIC_STORAGE_DIR):
        shutil.rmtree(Config.STATIC_STORAGE_DIR)
    app = create_app(TEST_MODE)
    with app.app_context():
        db.reflect()
        db.drop_all()
        db.create_all()

        user = User(username='******',
                    email='email@test_upload.com',
                    privileges=PrivilegesEnum.ADMIN)
        user.set_password('TestTest1')
        db.session.add(user)
        db.session.commit()

        project = Project(project_name='test/test', created_by=user.id)
        db.session.add(project)
        db.session.commit()

        permission = ProjectPermission(access_type=AccessTypeEnum.READ_WRITE)
        user.project_permissions.append(permission)
        project.permissions.append(permission)

        user = User(username='******',
                    email='email2@test_upload.com')
        user.set_password('TestTest1')
        permission = ProjectPermission(access_type=AccessTypeEnum.READ_WRITE)
        user.project_permissions.append(permission)
        project.permissions.append(permission)
        db.session.add(user)
        db.session.commit()

    client = app.test_client()
    yield client
Exemple #4
0
def deploy():
    app = create_app('production')
    with app.app_context():

        meta = db.metadata
        for table in reversed(meta.sorted_tables):
            print('Clear table %s' % table)
            db.session.execute(table.delete())
            db.session.commit()

        db.create_all()
        admin = User(username='******',
                     email='*****@*****.**',
                     privileges=PrivilegesEnum.ADMIN)
        admin.set_password('AdminPassword0')
        db.session.add(admin)
        db.session.commit()
    app.run(host='0.0.0.0', port=8080)
def test_annotation_and_user(client):
    annotation = Annotation()
    annotation1 = Annotation()
    user = User()
    user.annotations.append(annotation)
    user.annotations.append(annotation1)

    assert annotation == user.annotations[0]
    assert user == annotation.created_by

    assert len(user.annotations) == 2
    assert annotation1 == user.annotations[1]
    assert user == annotation1.created_by
def test_user_and_project(client):
    user = User()
    project = Project()
    project_permission = ProjectPermission()

    user.project_permissions.append(project_permission)
    project_permission.project = project

    assert len(user.project_permissions) == 1
    assert len(project.permissions) == 1
    assert project_permission == user.project_permissions[0]
    assert project_permission == project.permissions[0]
    assert user == project_permission.user
    assert project == project_permission.project
Exemple #7
0
def init_test(app):
    with app.app_context():
        db.create_all()

        user = User(username=ADMIN_USERNAME,
                    email='success@test_project.com',
                    privileges=PrivilegesEnum.ADMIN)
        user.set_password(ADMIN_PWD)
        db.session.add(user)

        user = User(username=ANNOTATOR_USERNAME,
                    email='no_privilege@test_project.com',
                    privileges=PrivilegesEnum.ANNOTATOR)
        user.set_password(ANNOTATOR_PWD)
        db.session.add(user)

        db.session.commit()
Exemple #8
0
def test_user_repr(client):
    user = User(username='******', email='*****@*****.**')
    assert str(user) == '<User %r>' % 'test_name'
Exemple #9
0
def test_verify_password(client):
    user = User(username='******', email='*****@*****.**')
    user.set_password('testasdfasdfasdf')
    assert not user.verify_password('asdf')
    assert user.verify_password('testasdfasdfasdf')
def local_client():
    app = create_app(TEST_MODE)
    with app.app_context():
        db.reflect()
        db.drop_all()
        db.create_all()

        admin = User(username='******',
                     email='email@test_load.com',
                     privileges=PrivilegesEnum.ADMIN)
        admin.set_password('TestTest1')
        db.session.add(admin)
        db.session.commit()

        annotator = User(username='******',
                         email='email2@test_load.com',
                         privileges=PrivilegesEnum.ANNOTATOR)
        annotator.set_password('TestTest2')
        db.session.add(annotator)
        db.session.commit()

        annotator_2 = User(username='******',
                           email='email3@test_load.com')
        annotator_2.set_password('TestTest3')
        db.session.add(annotator_2)
        db.session.commit()

    client = app.test_client()
    yield client
Exemple #11
0
def local_client():
    if os.path.isdir(Config.STATIC_STORAGE_DIR):
        shutil.rmtree(Config.STATIC_STORAGE_DIR)
    app = create_app(TEST_MODE)
    with app.app_context():
        db.reflect()
        db.drop_all()
        db.create_all()

        rw_permission = ProjectPermission(
            access_type=AccessTypeEnum.READ_WRITE)
        r_permission = ProjectPermission(access_type=AccessTypeEnum.READ_ONLY)

        admin = User(username='******',
                     email='email@test_load.com',
                     privileges=PrivilegesEnum.ADMIN)
        admin.set_password('TestTest1')
        admin.project_permissions.append(rw_permission)
        db.session.add(admin)
        db.session.commit()

        annotator = User(username='******',
                         email='email2@test_load.com',
                         privileges=PrivilegesEnum.ANNOTATOR)
        annotator.set_password('TestTest2')
        annotator.project_permissions.append(r_permission)
        db.session.add(annotator)
        db.session.commit()

        annotator_2 = User(username='******',
                           email='email3@test_load.com')
        annotator_2.set_password('TestTest3')
        db.session.add(annotator_2)
        db.session.commit()

        project = Project(project_name='TestProject', created_by=admin.id)
        db.session.add(project)
        db.session.commit()

        project.permissions.append(rw_permission)
        project.permissions.append(r_permission)

        test_image = Image(image_name='cat.jpg',
                           image_url='test_dir/test_dir_2/cat.jpg',
                           project_id=project.id)
        db.session.add(test_image)
        db.session.commit()

        test_image_2 = Image(image_name='dog.png',
                             image_url='test_dir/test_dir_2/dog.png',
                             project_id=project.id)
        db.session.add(test_image_2)
        db.session.commit()

        test_image_3 = Image(image_name='cat.jpg',
                             image_url='tests/cat.jpg',
                             image_storage_path='tests/cat.jpg',
                             project_id=project.id)
        db.session.add(test_image_3)
        db.session.commit()

    client = app.test_client()
    yield client
def local_client():
    app = create_app(TEST_MODE)
    with app.app_context():
        db.reflect()
        db.drop_all()
        db.create_all()

        user = User(
            username=ADMIN_USERNAME,
            email='email@test_upload.com',
            privileges=PrivilegesEnum.ADMIN)
        user.set_password(ADMIN_PWD)
        db.session.add(user)
        db.session.commit()

        project = Project(project_name='test/test1', created_by=user.id)
        db.session.add(project)
        db.session.commit()

        project = Project(project_name='test/test2', created_by=user.id)
        db.session.add(project)
        db.session.commit()

        # first annotator
        user = User(username=ANNOTATOR1_USERNAME, email=ANNOTATOR1_EMAIL)
        user.set_password(ANNOTATOR_PWD)

        db.session.add(user)
        db.session.commit()

        # second annotator
        user = User(username=ANNOTATOR2_USERNAME, email=ANNOTATOR2_EMAIL)
        user.set_password(ANNOTATOR_PWD)

        db.session.add(user)
        db.session.commit()

    client = app.test_client()
    yield client
Exemple #13
0
def get_project_fixture():
    app = create_app(TEST_MODE)
    with app.app_context():
        db.reflect()
        db.drop_all()
        db.create_all()

        user = User(username=ADMIN_USERNAME,
                    email='success@test_project.com',
                    privileges=PrivilegesEnum.ADMIN)
        user.set_password(ADMIN_PWD)
        db.session.add(user)
        db.session.commit()

        project = Project(project_name='test1', created_by=user.id)
        db.session.add(project)
        db.session.commit()

        image1 = Image(project_id=1, image_name='cracked_building.png')
        db.session.add(image1)
        db.session.commit()

        label1 = Label(label_name='asdf1', project_id=project.id)
        db.session.add(label1)
        label2 = Label(label_name='asdf2', project_id=project.id)
        db.session.add(label2)
        db.session.commit()

        annotation1 = Annotation(image_id=1,
                                 project_id=1,
                                 creator_id=1,
                                 label_id=1,
                                 data=b'1234',
                                 vector=b'1234')
        db.session.add(annotation1)
        annotation2 = Annotation(image_id=1,
                                 project_id=1,
                                 creator_id=1,
                                 label_id=2,
                                 data=b'1234',
                                 vector=b'1234')
        db.session.add(annotation2)
        db.session.commit()

        # Create project directory
        if not os.path.isdir('static-dir/1'):
            os.makedirs('static-dir/1')

        permission = ProjectPermission(access_type=AccessTypeEnum.READ_WRITE)
        user.project_permissions.append(permission)
        project.permissions.append(permission)

        user = User(username=ANNOTATOR_USERNAME,
                    email='no_privilege@test_project.com',
                    privileges=PrivilegesEnum.ANNOTATOR)
        user.set_password(ANNOTATOR_PWD)

        db.session.add(user)
        db.session.commit()

        permission = ProjectPermission(access_type=AccessTypeEnum.READ_ONLY)
        user.project_permissions.append(permission)
        project.permissions.append(permission)

        db.session.commit()

    client = app.test_client()
    yield client
def local_client():
    app = create_app(TEST_MODE)
    with app.app_context():
        db.reflect()
        db.drop_all()
        db.create_all()

        user_1 = User(username='******',
                      email='email_1@test_upload.com',
                      privileges=PrivilegesEnum.ADMIN)
        user_1.set_password('TestTest1')

        user_2 = User(username='******',
                      email='email_2@test_upload.com',
                      privileges=PrivilegesEnum.ANNOTATOR)
        user_2.set_password('TestTest2')

        user_3 = User(username='******',
                      email='*****@*****.**',
                      privileges=PrivilegesEnum.ANNOTATOR)
        user_3.set_password('TestTest3')

        user_4 = User(username='******',
                      email='*****@*****.**',
                      privileges=PrivilegesEnum.ADMIN)
        user_4.set_password('TestTest4')

        db.session.add(user_1)
        db.session.add(user_2)
        db.session.add(user_3)
        db.session.add(user_4)
        db.session.commit()

    client = app.test_client()
    yield client