From 4a251f8bce2e65a445fb2c46c2f71f763311c0ac Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 30 May 2017 15:14:32 -0400 Subject: [PATCH] Fixed AppRegistryNotReady error when running gis_tests in isolation on PostGIS. Regression in 890537253cf235091816d27a5c2fb64943c8e34a. --- tests/runtests.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/runtests.py b/tests/runtests.py index 9202534c51..7f4f1670c5 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -109,10 +109,6 @@ def setup(verbosity, test_labels, parallel): bits = label.split('.')[:1] test_labels_set.add('.'.join(bits)) - if 'gis_tests' in test_labels_set and not connection.features.gis_enabled: - print('Aborting: A GIS database backend is required to run gis_tests.') - sys.exit(1) - if verbosity >= 1: msg = "Testing against Django installed in '%s'" % os.path.dirname(django.__file__) max_parallel = default_test_processes() if parallel == 0 else parallel @@ -177,6 +173,14 @@ def setup(verbosity, test_labels, parallel): # Load all the ALWAYS_INSTALLED_APPS. django.setup() + # It would be nice to put this validation earlier but it must come after + # django.setup() so that connection.features.gis_enabled can be accessed + # without raising AppRegistryNotReady when running gis_tests in isolation + # on some backends (e.g. PostGIS). + if 'gis_tests' in test_labels_set and not connection.features.gis_enabled: + print('Aborting: A GIS database backend is required to run gis_tests.') + sys.exit(1) + # Load all the test model apps. test_modules = get_test_modules()