Skip to content

boldprogressives/django-testrunner-use_live_db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sometimes you need to run Django test suites against a live database connection 
that you also use for development or production.

Django makes this very difficult: out of concern for your data's well-being,
the test runner will create a clean mirror of each of your databases before
running your tests, and run the tests against those test databases.

(See https://docs.djangoproject.com/en/dev/topics/testing/#the-test-database 
for more information about this feature.)

Best practices are great, but you might just need to disable this feature.
You might be on a shared server where you don't have permissions to create
and destroy new databases; you might have a large, complex legacy database
that you want to test against directly for convenience; you might have
configured a database connection with only read/select privileges
which you want to run querying tests against, since you know that you
can't accidentally mess up any live data with your tests anyway. 

In those situations, use the test runner provided by this library.

Usage
=====

First, make sure to configure the test runner in ``settings.py``:

  TEST_RUNNER = 'use_live_db.TestRunner'

Then, mark one or more of your DATABASES with a special attribute
`USE_LIVE_FOR_TESTS` which tells the test runner to use it as-is in
tests, instead of trying to create a copy:

  DATABASES = {
    'default': {
      'ENGINE': #...
      'NAME': #...
      # ...
      'USE_LIVE_FOR_TESTS': True
    },
  }

If you omit this value from any of the connections in your DATABASES,
then Django's default behavior will apply.  So, for example, you could
configure your default database to have tests run against a copy per
Django's typical behavior; and set ``USE_LIVE_FOR_TESTS`` on your
read-only connection to a supplemental legacy database which has data
that your tests depend on.

About

Test against your live database connections with this custom Django testrunner

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published