예제 #1
0
def test_get_set_settings(tmpdir):
    tmpdir = Path(tmpdir)

    projects = sa.search_projects(PROJECT_NAME, return_metadata=True)
    for project in projects:
        sa.delete_project(project)

    sa.create_project(PROJECT_NAME, "tt", "Vector")

    old_settings = sa.get_project_settings(PROJECT_NAME)
    print(old_settings)
    for setting in old_settings:
        if "attribute" in setting and setting["attribute"] == "Brightness":
            brightness_value = setting["value"]
    new_settings = sa.set_project_settings(PROJECT_NAME,
                                           [{
                                               "attribute": "Brightness",
                                               "value": brightness_value + 10
                                           }])
    assert new_settings[0]["value"] == brightness_value + 10

    time.sleep(1)
    new_settings = sa.get_project_settings(PROJECT_NAME)
    for setting in new_settings:
        if "attribute" in setting and setting["attribute"] == "Brightness":
            new_brightness_value = setting["value"]

    assert new_brightness_value == brightness_value + 10
def test_create_from_full_info():
    projects = sa.search_projects(PROJECT_NAME1, return_metadata=True)
    for project in projects:
        sa.delete_project(project)

    project = sa.create_project(PROJECT_NAME1, "test", "Vector")

    sa.upload_images_from_folder_to_project(
        project, "./tests/sample_project_vector"
    )
    sa.create_annotation_classes_from_classes_json(
        project, "./tests/sample_project_vector/classes/classes.json"
    )
    old_settings = sa.get_project_settings(PROJECT_NAME1)
    for setting in old_settings:
        if "attribute" in setting and setting["attribute"] == "Brightness":
            brightness_value = setting["value"]
    sa.set_project_settings(
        PROJECT_NAME1,
        [{
            "attribute": "Brightness",
            "value": brightness_value + 10
        }]
    )
    team_users = sa.search_team_contributors()

    sa.share_project(PROJECT_NAME1, team_users[1], "QA")

    project_metadata = sa.get_project_metadata(
        project,
        include_annotation_classes=True,
        include_settings=True,
        include_workflow=True,
        include_contributors=True
    )

    project_metadata["name"] = PROJECT_NAME2

    print(project_metadata)
    projects = sa.search_projects(PROJECT_NAME2, return_metadata=True)
    for project in projects:
        sa.delete_project(project)
    sa.create_project_from_metadata(project_metadata)
    new_project_metadata = sa.get_project_metadata(
        PROJECT_NAME2,
        include_annotation_classes=True,
        include_settings=True,
        include_workflow=True,
        include_contributors=True
    )

    for u in new_project_metadata["contributors"]:
        if u["user_id"] == team_users[1]:
            break
    else:
        assert False

    assert len(new_project_metadata["annotation_classes"]) == len(
        project_metadata["annotation_classes"]
    )

    assert len(new_project_metadata["settings"]) == len(
        project_metadata["settings"]
    )
    for new_setting in new_project_metadata["settings"]:
        if "attribute" in new_setting and new_setting["attribute"
                                                     ] == "Brightness":
            new_brightness_value = new_setting["value"]
    assert new_brightness_value == brightness_value + 10

    assert len(new_project_metadata['workflow']) == len(
        project_metadata["workflow"]
    )
def test_create_like_project(tmpdir):
    tmpdir = Path(tmpdir)

    projects = sa.search_projects(PROJECT_NAME, return_metadata=True)
    for project in projects:
        sa.delete_project(project)

    sa.create_project(PROJECT_NAME, "tt", "Vector")
    sa.create_annotation_class(PROJECT_NAME, "rrr", "#FFAAFF")

    old_settings = sa.get_project_settings(PROJECT_NAME)
    for setting in old_settings:
        if "attribute" in setting and setting["attribute"] == "Brightness":
            brightness_value = setting["value"]
    sa.set_project_settings(PROJECT_NAME, [{
        "attribute": "Brightness",
        "value": brightness_value + 10
    }])
    sa.set_project_workflow(PROJECT_NAME, [{
        "step": 1,
        "className": "rrr",
        "tool": 3
    }])
    users = sa.search_team_contributors()
    sa.share_project(PROJECT_NAME, users[1], "QA")

    projects = sa.search_projects(PROJECT_NAME2, return_metadata=True)
    for project in projects:
        sa.delete_project(project)

    new_project = sa.clone_project(PROJECT_NAME2,
                                   PROJECT_NAME,
                                   copy_contributors=True)
    assert new_project["description"] == "tt"
    assert new_project["type"] == 1
    time.sleep(1)

    ann_classes = sa.search_annotation_classes(PROJECT_NAME2,
                                               return_metadata=True)
    assert len(ann_classes) == 1
    assert ann_classes[0]["name"] == "rrr"
    assert ann_classes[0]["color"] == "#FFAAFF"

    new_settings = sa.get_project_settings(PROJECT_NAME2)
    for setting in new_settings:
        if "attribute" in setting and setting["attribute"] == "Brightness":
            new_brightness_value = setting["value"]

    assert new_brightness_value == brightness_value + 10

    new_workflow = sa.get_project_workflow(PROJECT_NAME2)
    assert len(new_workflow) == 1
    assert new_workflow[0]["className"] == "rrr"
    assert new_workflow[0]["tool"] == 3

    new_project = sa.get_project_metadata(new_project["name"],
                                          include_contributors=True)
    assert len(new_project["contributors"]) == 1
    assert new_project["contributors"][0]["user_id"] == users[1]
    assert new_project["contributors"][0][
        "user_role"] == sa.user_role_str_to_int("QA")