Django test database looks empty while test is running

database, django, testing

Solution

Django's `TestCase` is wrapping every test in its own transaction. So your database is not being used any time you do a request through ORM.

Problem

I have a Django project that uses local PostgreSQL server. I'm using a debugger to debug some weird bugs that I have. While the debugger is stopped on one of the tests, I tried to look at the test database. I see this new database (test_project1) and all the schemes are defined as they should be. But all tables are empty. I know that the tables are not empty: - I used a fixture and some tests already ran and returned data. - A post test created a new user and returned 201 status code. And yet, I see no data when I try to access the database with `pgAdmin3` or `psql`. Any idea what is going on here? Is there some kind of sophisticated cache mechanism that Django uses?

Original source