async def METHOD_NAME(
    client: TestClient,
    user_id: UserID,
    project_uuid: ProjectID,
    faker: Faker,
    lock_status: ProjectStatus,
):
    assert client.app
    # no lock
    assert await get_project_locked_state(client.app, project_uuid) == None
    assert await is_project_locked(client.app, project_uuid) == False
    user_name: UserNameDict = {
        "first_name": faker.first_name(),
        "last_name": faker.last_name(),
    }
    async with lock_project(
        app=client.app,
        project_uuid=project_uuid,
        status=lock_status,
        user_id=user_id,
        user_name=user_name,
    ):
        locked_state = await get_project_locked_state(client.app, project_uuid)
        expected_locked_state = ProjectLocked(
            value=bool(lock_status not in [ProjectStatus.CLOSED, ProjectStatus.OPENED]),
            owner=Owner(user_id=user_id, **user_name),
            status=lock_status,
        )
        assert locked_state == expected_locked_state