Exemplo n.º 1
0
def test_upload_multiple_images_and_add_to_collection():
    api = API(base_url=TEST_BASE_URL)
    auth_result = api.obtain_token(**TEST_CREDENTIALS)
    api.access_token = auth_result["access_token"]

    # create course
    course_created = api.create_course(
        title="SDK Course",
        lti_context_id=generate_ctx_id(),
        lti_tool_consumer_instance_guid="test.institution.edu",
    )
    course_id = course_created["id"]

    # upload multiple images to the course
    image_ids = []
    content_type = "image/png"
    upload_files = [(file_name,
                     open(os.path.join(TEST_IMAGES_DIR, file_name),
                          "rb"), content_type) for file_name in (
                              "16x16-ff00ff7f.png",
                              "32x32-faaa1aff.png",
                              "64x64-ff0000c1.png",
                          )]
    try:
        images_uploaded = api.upload_images(
            course_id,
            upload_files=upload_files,
            title="Color Block",
        )
        assert len(
            images_uploaded) == 3, "list returned with the uploaded image"
        image_ids = [image["id"] for image in images_uploaded]
    finally:
        for (file_name, fp, content_type) in upload_files:
            fp.close()

    # create collection
    collection_created = api.create_collection(course_id,
                                               title="SDK Course",
                                               description="Just a test")
    collection_id = collection_created["id"]

    # add images to collection
    update_params = dict(
        course_id=course_id,
        title=collection_created["title"],
        course_image_ids=image_ids,
    )
    collection_updated = api.update_collection(collection_id, **update_params)
    assert collection_updated["course_image_ids"] == image_ids

    # delete course
    api.delete_course(course_id)
Exemplo n.º 2
0
def test_collection_crud():
    api = API(base_url=TEST_BASE_URL)
    auth_result = api.obtain_token(**TEST_CREDENTIALS)
    api.access_token = auth_result["access_token"]

    # create course
    title = "SDK Course"
    course_created = api.create_course(
        title=title,
        lti_context_id=generate_ctx_id(),
        lti_tool_consumer_instance_guid="test.institution.edu",
    )
    course_id = course_created["id"]

    # create collection
    collection_params = dict(
        title="SDK Course",
        description="This is a fascinating collection",
    )
    collection_created = api.create_collection(course_id, **collection_params)
    assert "id" in collection_created
    assert collection_created["title"] == collection_params["title"]
    assert collection_created["description"] == collection_params[
        "description"]
    collection_id = collection_created["id"]

    # update collection
    update_params = dict(
        course_id=course_id,  # TODO: why is this required for an update?
        title=collection_created["title"] + " Updated",
        description=collection_created["description"] + " Updated",
    )
    collection_updated = api.update_collection(collection_id, **update_params)
    collection_updated_subset = {
        k: collection_updated[k]
        for k in update_params
    }
    assert update_params == collection_updated_subset

    # delete collection
    collection_deleted = api.delete_collection(collection_id)
    assert collection_deleted == {}

    # delete course
    course_deleted = api.delete_course(course_id)
    assert course_deleted == {}