示例#1
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=ADMIN_USERNAME, email='email@test_upload.com')
        user.set_password(ADMIN_PWD)
        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=ANNOTATOR_USERNAME, email='email2@test_upload.com')
        user.set_password(ANNOTATOR_PWD)
        db.session.add(user)
        db.session.commit()

        user = User(
            username=ANNOTATOR_USERNAME2, email='email1@test_upload.com')
        user.set_password(ANNOTATOR_PWD)
        db.session.add(user)
        db.session.commit()

    client = app.test_client()
    yield client
def test_image_and_project(client):
    image = Image()
    project = Project()

    project.images.append(image)
    assert len(project.images) == 1
    assert image == project.images[0]
    assert project == image.project
def test_label_and_project(client):
    label = Label()
    label1 = Label()
    project = Project()

    project.labels.append(label)
    project.labels.append(label1)
    assert (len(project.labels) == 2)
    assert (label.project_id == project.id)
    assert (label1.project_id == project.id)
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
def test_annotation_and_project(client):
    annotation = Annotation()
    annotation1 = Annotation()
    project = Project()
    project.annotations.append(annotation)
    project.annotations.append(annotation1)

    assert annotation == project.annotations[0]
    assert project == annotation.project

    assert len(project.annotations) == 2
    assert annotation1 == project.annotations[1]
    assert project == annotation1.project
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
示例#7
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
示例#8
0
def test_project_repr(client):
    project = Project(project_name='buildings_project')
    assert str(project) == '<Project: %r>' % 'buildings_project'
示例#9
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