Improve robustness of tests with sqlalchemy #17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes some issues with quickstarted projects:
model.init_model()
could be called multiple times through loading the app (functional tests) ortests.models.setup_db()
but wouldn't dispose of the previous sessiontransaction
andDBSession
APIs to manage transactionswebsetup
assumes that transactions are in theACTIVE
state but this doesn't hold true ifteardown_db()
was called beforeThis would cause functional tests to fail setting up the test application if
setup_db()
was called in a previous test, which can easily be tested by renaming thetests.functional
to e.g.tests.zzz_functional
in a quickstarted project and then running the test suite.NB: Having slept a night over it, a different way to address this would be to have exactly one test app, and one call to
setup_db()
prior to all tests but I'm not sure how feasible this is.