Keeping/accessing the data Django generates during a test run

172 views
Skip to first unread message

Anton Melser

unread,
Feb 13, 2019, 3:54:41 AM2/13/19
to Django users
Hi,

I can't work out whether it is expected or whether I am missing something. I would like to keep the DB data that I generate during a test run to inspect/persist it. --keepdb means I have empty tables at the end, strangely even if I ctrl-C a test run. It would also be logical for test data to get cleaned... Is there an option I can add to keep it?

I have a lot of calls to external services that should be mocked. The json returned from these calls is put in the DB as-is, so if I can just set up an initial run of the tests and then get the data from the DB that would be optimal. I could add file writes about the place to persist, but I want to evolve the test data over time and will need to do this often, so being able to do that from the DB would be very handy.

Any pointers?

Thanks,
Anton

Mike Dewhirst

unread,
Feb 13, 2019, 5:19:43 AM2/13/19
to django...@googlegroups.com
Have you looked at fixtures?

manage.py dumpdata will create a json file from a database. I use it to populate the test database from production data reference tables. dumpdata let's you --exclude=... the other tables.

I know that's not exactly what you asked for but maybe you can import data written to files into a database for conversion into fixtures?

Mike

Connected by Motorola
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f9d2dfe3-c832-45bd-a6d3-7f3415f1293d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jani Tiainen

unread,
Feb 13, 2019, 9:47:33 AM2/13/19
to django...@googlegroups.com
When you use django unittests commit is made as no-op. Use --keepdb and at the end of your tests run SQL commit against your database cursor connection.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f9d2dfe3-c832-45bd-a6d3-7f3415f1293d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Jani Tiainen

- Well planned is half done, and a half done has been sufficient before...

Anton Melser

unread,
Feb 13, 2019, 9:54:04 AM2/13/19
to django...@googlegroups.com
When you use django unittests commit is made as no-op. Use --keepdb and at the end of your tests run SQL commit against your database cursor connection.
 
Awesome, exactly the info I was missing. Thanks for your help.
Cheers,
Anton

dilo...@gmail.com

unread,
Dec 5, 2023, 7:41:16 PM12/5/23
to Django users
HelloI am running into the same problem but I do not understand what needs to be done. I use keepdb but how can I get the database cursor connection. Do I need to modify the test script?
Thanks for your help.

Juan diego Jacobo hernandez

unread,
Dec 5, 2023, 10:08:32 PM12/5/23
to django...@googlegroups.com
Yes thanks 

(null)


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages