Enhancement to run SQLite unit tests with a database file, rather than in-memory db
|Reported by:||jdetaeye||Owned by:||nobody|
|Cc:||Triage Stage:||Ready for checkin|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
In my application and its test suite I also run an external process to process some data in the database. When using the SQLite database engine I can't use the in-memory database that is: it's only visible inside the python process running the test...
For other database engines, one can use the TEST_DATABASE_NAME to choose the database to use for the tests, but no such override capability is possible with SQLite.
This patch corrects this "unfair" inbalance:
- When no TEST_DATABASE_NAME is specified in the settings file, it defaults to ":memory:", ie current behavior
- If a TEST_DATABASE_NAME setting is present and it's different from ":memory:" we try to delete the database file before running the tests. Similar as the other database engines, the user is prompted for confirmation.
- When the tests have finished, the test database file is deleted.
Since this change is backwards-incompatible, a design decision is required on this ticket.
Change History (8)
Changed 7 years ago by jdetaeye
comment:1 Changed 7 years ago by jdetaeye
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Triage Stage changed from Unreviewed to Design decision needed
comment:2 Changed 7 years ago by jacob
- Needs documentation set
- Triage Stage changed from Design decision needed to Accepted