which database is used in unittest?
Hello All,
Happy New Year 2021! I've configured mailman using sqlite as backend database. but when I run unittests, e.g. python3 -m nose2 -v mailman.model.test
seems the data is not write to production sqlite database, so which database is used in unittest and how to check data in that db?
thanks! Mike
On 1/3/21 4:44 PM, baguazhangba@gmail.com wrote:
Hello All,
Happy New Year 2021! I've configured mailman using sqlite as backend database. but when I run unittests, e.g. python3 -m nose2 -v mailman.model.test
seems the data is not write to production sqlite database, so which database is used in unittest and how to check data in that db?
Tests run that way will use their own sqlite DB which is removed after testing. You can use any database you like by configuring it in a file containing a [database] section with appropriate class and url definitions and then doing something like
MAILMAN_EXTRA_TESTING_CFG=/path/to/db/config python3 -m nose2 -v mailman.model.test
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
On 1/3/21 5:22 PM, Mark Sapiro wrote:
Tests run that way will use their own sqlite DB which is removed after testing. You can use any database you like by configuring it in a file containing a [database] section with appropriate class and url definitions and then doing something like
MAILMAN_EXTRA_TESTING_CFG=/path/to/db/config python3 -m nose2 -v mailman.model.test
For more on this see <https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/contribute.html#testing-with-postgresql-and-mysql>.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Thanks Mark for the answer! Now I'm able to use MAILMAN_EXTRA_TESTING_CFG=/tmp/mailman/sqilite.db python3 -m nose2 -v mailman.model.test and can see the file timestamp changed after I run unittest.
but the sqlite database seems empty when I query tables like select * from mailinglist; I tried sys.exit() right after calling create_list('ant@example.com') and config.db.store.flush(), but still could not see any data in sqlite. anywhere I should look at?
thanks! Mike
On 1/3/21 7:51 PM, baguazhangba@gmail.com wrote:
Thanks Mark for the answer! Now I'm able to use MAILMAN_EXTRA_TESTING_CFG=/tmp/mailman/sqilite.db python3 -m nose2 -v mailman.model.test and can see the file timestamp changed after I run unittest.
but the sqlite database seems empty when I query tables like select * from mailinglist; I tried sys.exit() right after calling create_list('ant@example.com') and config.db.store.flush(), but still could not see any data in sqlite. anywhere I should look at?
Testing clears out everything it does. See <https://gitlab.com/mailman/mailman/-/blob/master/src/mailman/testing/helpers.py#L462>.
Would you really want testing to leave artifacts behind?
What is your actual goal?
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Thanks Mark! We don't want to leave artifacts behind but want to see the testing data in the db before it wipes about. The goal is to see if we can write some data to another database.
thanks! Mike
On Thu, Jan 21, 2021, at 10:38 AM, baguazhangba@gmail.com wrote:
Thanks Mark! We don't want to leave artifacts behind but want to see the testing data in the db before it wipes about. The goal is to see if we can write some data to another database.
The test suite doesn’t just wipe data at the end of the test run, it will clean up after each set of tests to make sure that they can expect a clean slate when running. So, you won’t be able to simply skip the deletion at the end of the run and expect some data in the database.
You can instead create lists and data by running a dev server locally and the inspect the database.
thanks! Mike
Mailman-Developers mailing list -- mailman-developers@python.org To unsubscribe send an email to mailman-developers-leave@python.org https://mail.python.org/mailman3/lists/mailman-developers.python.org/ Mailman FAQ: https://wiki.list.org/x/AgA3
Security Policy: https://wiki.list.org/x/QIA9
-- thanks, Abhilash Raj (maxking)
participants (3)
-
Abhilash Raj
-
baguazhangba@gmail.com
-
Mark Sapiro