Unit Test Integration

By default, South's syncdb command will also apply migrations if it's run in non-interactive mode; however, ./manage.py test will simply use the old Django syncdb as normal (there's no need for migrations in a test database).

If you want the test runner to use migrate instead of syncdb - for example, if you have some migrations that create data or load fixtures - simply set SOUTH_TESTS_MIGRATE = True in settings.py.

South's own unit tests

South has its own set of unit tests; these will also be run when you run ./manage.py test. They do some fiddling with Django internals to set up a proper test environment; it's non-destructive, but if it's fouling up your own tests please submit a ticket about it.

You can also set SKIP_SOUTH_TESTS=True in settings.py to stop South's tests running.