Repository navigation
[DPE-9669] Test full refresh workflow including router - #471
Conversation
80bc5fc to
02bab21
Compare
Thanks for the explainer, it helps a lot. |
paulomach
left a comment
There was a problem hiding this comment.
Looking good - failures are unrelated and I like the naming for new files/tests.
b64b3cf to
52bd997
Compare
sinclert-canonical
left a comment
There was a problem hiding this comment.
Looks good overall! One question though:
We already deploy MySQL Router and MySQL Test app on the vanilla upgrade test. AFAIK, deploying MySQL Router to just relate it to MySQL Server and do nothing to it does not serve any purpose. Furthermore, it is a very naive action compared to the two scenarios been introduced here.
Am I to understand that we can now simplify the vanilla upgrade tests?
| charm=MYSQL_ROUTER_APP_NAME, | ||
| app=MYSQL_ROUTER_APP_NAME, | ||
| base="ubuntu@26.04", | ||
| channel="8.4/candidate", |
There was a problem hiding this comment.
Either we point at 8.4/edge like the rest of the tests, or 8.4/stable now that we promoted it.
There was a problem hiding this comment.
I now forgot why I had to use candidate... Will bump to stable.
There was a problem hiding this comment.
You probably did that as 2 weeks ago we did not even had MySQL Router 8.4 in the 8.4/stable channel.
Not sure why you did not stick with 8.4/edge though.
There was a problem hiding this comment.
Yeah I remember now. The whole point of the test is to refresh the router from stable to edge. There was no stable, so I chose candidate.
Assisted-by: OpenRouter:z-ai/glm-5.2 opencode
Assisted-by: OpenRouter:z-ai/glm-5.2 opencode
52bd997 to
7f536b3
Compare
Yes, this was done separately on #383. I agree these tests now go beyond what's covered in the recently added |
This test purpose is exactly to ensure a new relation still works after the refresh. In the past, we could had catch issues if such a test, as simple as it looks, was in place. |
Alright with me then. |
The tests themselves aren't difficult, but I've hesitated a lot on what to consolidate and refactor from other tests. There's already a lot of duplicity. I've attempted different things and walked them back because they ended up making the tests more obscure or more complex... Happy to take suggestions.
In particular I've decided to have 2 test files, even if they are almost identical. Having 1 test file to test 2 full refresh workflows involves resetting the model mid-test, which we don't do in other places. Parametrizing the test doesn't help, I think (we still need the
test_deploy_.... And I decided against adding these to the existingtest_upgrade.pyas well, since the paths are different.I've also decided to add a helper to refresh MySQL server - but not to make it more generic than that. The reason is that machines has some extra try...except that is not there in Kubernetes, and also that refreshing the single router unit seems to be simpler.
Finally, this also makes a minor update to the machines/poetry.lock, which was out of date.
Checklist