Skip to content

Conversation

@rtibbles
Copy link
Member

@rtibbles rtibbles commented Jan 16, 2026

Summary

Adds a test to make sure that units have their assessment items published as a Perseus zip (not QTI, as for now that only happens for Surveys) but skips assessment metadata
Updates publishing logic with helper function has_assessments to handle the two cases consistently in all places we check.
Fixes issue that arose when adding more test data to the export channel test setup - previously the Bad Mastery exercise node did not appear in the complete nodes for some reason, but now it does. Explicitly skips it.
Updates le-utils for updated JSONSchema for mastery criteria.
Adds a requirement that if a folder is a UNIT, it must have valid pre-post-test completion criteria to be considered complete.

Note: This relies on ricecooker code pushing the correct assessment_item_ids at time of push, rather than dynamically generating them.

References

In support of learningequality/kolibri-ecosystem#38

Reviewer guidance

Are there any places where exercise handling has been updated that it shouldn't? Are there any places where exercise handling hasn't been updated but it should?

I have tested this locally, uploading an example course channel to my development server and ensuring the published channel db look as I would expect, with the correct options data on the UNITs, and appropriate file objects in the DB.

Attached here: a0271e8992f856a99a2d1b8ecfde9c5a.zip

Can also be tested more fully with this ricecooker draft PR: learningequality/ricecooker#653

@rtibbles rtibbles changed the title Unit tests Unit tests (as in, tests for unit folders) Jan 16, 2026
@bjester bjester self-assigned this Jan 19, 2026
Copy link
Member

@bjester bjester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to me ContentNode.mark_complete should be updated. While the validation function was updated here, that method side steps it for topics, meaning a node with Unit modality can be marked complete without necessary mastery criteria. Unless updating that would be problematic?

Copy link
Member

@bjester bjester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When publishing the channel from your ricecooker example, I noticed a bunch of error messages about Unable to sort answers, leaving unsorted, although I don't see where that's coming from. Publishing didn't fail though, so I presume it's not an issue.

@marcellamaki marcellamaki merged commit 8b9be86 into learningequality:hotfixes Jan 20, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants