Skip to content

Validate modulestore_migrator for legacy libraries #37321

@kdmccormick

Description

@kdmccormick

The modulestore_migrator app was added by this PR:

Its immediate purpose was to support the Course-to-Library Import API and UI, and it has only been tested with courses as sources. However, it was intentionally designed to take any modulestore learning context as a source, including legacy libraries. So, we plan to use the modulestore_migrator in order to implement the Legacy Libraries migration as well.

AC

Test the modulestore_migrator tool with a legacy library as a source. Aspects to test:

  • Legacy libraries containing a mix of text, videos, and problems, including at least one advanced problem with and loncapa/python block and multiple responses.
  • Both the Django admin tool and the REST API at /api/modulestore_migrator/v1 (specified here).
  • Specifying a target collection that doesn't exist, and one that does exist.
  • Both forward_source_to_target=true and forward_source_to_target=false. (In the final product, the frontend will need to specify true for the first migration and false for subsequent migrations.)

Ensure that:

  • The content all renders correctly in the target library.
  • The expected collection is created or updated.
  • If forward_source_to_target=true, then forwarded is set on the ModulestoreSource and ModulestoreBlockSource objects.. If false, then forwarded is left alone. For context, the forwarded field will be used by Follow migrated LegacyLibraryContentBlock references frontend-app-authoring#2386.
  • Performance is reasonable for legacy libraries of the size that we expect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Backlog - Is resourced

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions