Fix clobbering of real database by tests #182
Closed
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.
Force disconnection if a database is already connected when patching for DB reuse.
DjangoCMS opens database connections very early, to set up URL routing, before
pytest has time to patch the database name to use the test database. Thus the
connection is already open and changing the NAME has no effect, so the real
database gets clobbered instead of the test one.
This isn't easy to trigger - I've only just noticed it and I've been using
DjangoCMS together with pytest-django for several projects. I don't yet know
what causes it. But because it's so catastrophic, I think we ought to put some
protection against it in place, hence this patch.