コード例 #1
0
def test_create_project_with_viewer(project_jsonschema, file_type: str,
                                    viewer: ViewerInfo):
    user = UserInfo(id=3, name="foo", primary_gid=33, email="*****@*****.**")

    project = create_viewer_project_model(
        project_id="e3ee7dfc-25c3-11eb-9fae-02420a01b846",
        file_picker_id="4c69c0ce-00e4-4bd5-9cf0-59b67b3a9343",
        viewer_id="fc718e5a-bf07-4abe-b526-d9cafd34830c",
        owner=user,
        download_link="http://httpbin.org/image/jpeg",
        viewer_info=viewer,
    )

    assert isinstance(project, Project)

    assert list(project.workbench.keys())

    # converts into equivalent Dict
    project_in: Dict = json.loads(
        project.json(exclude_none=True, by_alias=True))
    print(json.dumps(project_in, indent=2))

    # This operation is done exactly before adding to the database in projects_handlers.create_projects
    projects_api.validate_project(
        app={APP_JSONSCHEMA_SPECS_KEY: {
            "projects": project_jsonschema
        }},
        project=project_in,
    )
コード例 #2
0
async def test_add_new_project_from_model_instance(
    view,
    client,
    mocker,
):
    view["label"] = view.pop("display_name")
    viewer = ViewerInfo(**view)
    assert viewer.dict() == view

    mock_func = mocker.patch(
        "simcore_service_webserver.director_v2_api.create_or_update_pipeline",
        return_value=None,
    )

    async with NewUser(app=client.app) as user_db:
        try:
            # preparation
            await auto_add_user_to_groups(client.app, user_db["id"])
            user_db = await get_user(client.app, user_db["id"])

            # this part is under test  ---
            user = UserInfo(
                id=user_db["id"],
                name=user_db["name"],
                primary_gid=user_db["primary_gid"],
                email=user_db["email"],
            )

            project_id = "e3ee7dfc-25c3-11eb-9fae-02420a01b846"
            file_picker_id = "4c69c0ce-00e4-4bd5-9cf0-59b67b3a9343"
            viewer_id = "fc718e5a-bf07-4abe-b526-d9cafd34830c"

            project: Project = create_viewer_project_model(
                project_id,
                file_picker_id,
                viewer_id,
                owner=user,
                download_link="http://httpbin.org/image/jpeg",
                viewer_info=viewer,
            )

            await add_new_project(client.app, project, user)

            # checks start here   ---
            assert mock_func.called

            # internally validates project injected in db
            project_db = await get_project_for_user(
                client.app,
                str(project.uuid),
                user.id,
                include_state=False,
                include_templates=False,
            )
            assert set(
                project_db["workbench"].keys()) == {file_picker_id, viewer_id}

        finally:
            # tear-down: delete before user gets deleted
            await delete_all_projects(client.app)