-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tutor integration tests #199
Conversation
1dcf626
to
2d50c75
Compare
2d50c75
to
81a8b56
Compare
@Squirrel18 @Alec4r @mariajgrimaldi @andrey-canon I'd like to get your feedback on this. For this POC I created a simple test that imports the edxapp_wrapper/backends code that was previously unreachable. I think this test architecture could alter the way we guarantee the support of new versions. For now I was focused on making sure the backends work, but at some point in the future this might even replace the backend pattern. Note: still working in the tutor-nightly version. |
We tried to do this a few years ago, and now, thanks to tutor, it's possible :) :) I took a very quick look at the code and looks ok, however this is how implement that but I wonder how this will change our current way of writing plugins, so my questions are:
|
In addition to @andrey-canon's comments, last time we spoke about this, we agreed to create a custom Github Action, to implement and reuse this functionality across repositories.
|
I agree this has theoretically different purposes, I think all of us are aware that if we have, for example, a |
Thank you both for your review and comments. To @andrey-canon's points:
I don't think edxapp_wrapper will be removed as a consequence of this. As I see it, the edxapp_wrapper pattern has 2 main goals:
The isolation is necessary so that we can run quick unit tests. This applies to the CI process, but also to the dev machines. Even if we can run slow integration tests we still need to be able to isolate imports. This would solve your 3rd point, we can still run test locally without having to spin up instances of tutor. Having the capability to test against several versions might still prove very beneficial here as we can do much more simple edxapp_wrappers and let the tests catch regressions. This has been happening for a while (the simple backends) but we were not properly testing those. Only assuming that stable modules such as
This ties nicely with the second goal of the edxapp_wrapper pattern. I think we have made an incomplete and probably incorrect promise tacitly. That a particular version of a plugin supports all the releases it has
I agree with @Squirrel18 in that this should become a standard. But as I wrote before I don't think this is a new arch pattern. We want to write integration tests so that migrating in the future is easier, as we have a safety net to test compatibility instead of relying on manual testing that is slow, costly and might not be as thorough. Finally @Squirrel18 points that:
Yes indeed, that happened in a private talk between us. I believe we should make a more public promise about it. We'd like to write this code as a github action so that for plugin maintainers, running this code is as simple as one single step in the workflow. Thanks again for testing and raising this points. |
@MaferMazu published this as an action in: https://github.com/eduNEXT/integration-test-in-tutor |
Description
This PR is a proof of concept of how to test the plugin code with different versions of tutor using a real tutor local deployment in github actions
Testing instructions
Additional information
I'm testing with Quince and Palm only because the mounts command started existing then
Checklist for Merge