diff --git a/awx/__init__.py b/awx/__init__.py index 08284f7697..1579af07de 100644 --- a/awx/__init__.py +++ b/awx/__init__.py @@ -58,11 +58,12 @@ def prepare_env(): sys.modules['django.utils.six'] = sys.modules['six'] django.utils.six = sys.modules['django.utils.six'] from django.utils import six - # Use the AWX_TEST_DATABASE_NAME environment variable to specify the test - # database name to use when management command is run as an external + # Use the AWX_TEST_DATABASE_* environment variables to specify the test + # database settings to use when management command is run as an external # program via unit tests. - if os.environ.get('AWX_TEST_DATABASE_NAME', None): - settings.DATABASES['default']['NAME'] = os.environ['AWX_TEST_DATABASE_NAME'] + for opt in ('ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT'): + if os.environ.get('AWX_TEST_DATABASE_%s' % opt, None): + settings.DATABASES['default'][opt] = os.environ['AWX_TEST_DATABASE_%s' % opt] def manage(): # Prepare the AWX environment. diff --git a/awx/main/tests/base.py b/awx/main/tests/base.py index 05894664f4..a2abb1dc2c 100644 --- a/awx/main/tests/base.py +++ b/awx/main/tests/base.py @@ -42,6 +42,10 @@ class BaseTestMixin(object): if name == 'SERVER_URI': value = '' setattr(settings, 'AUTH_LDAP_%s' % name, value) + # Pass test database settings in environment for use by any management + # commands that run from tests. + for opt in ('ENGINE', 'NAME', 'USER', 'PASSWORD', 'HOST', 'PORT'): + os.environ['AWX_TEST_DATABASE_%s' % opt] = settings.DATABASES['default'][opt] def tearDown(self): super(BaseTestMixin, self).tearDown() diff --git a/awx/main/tests/inventory.py b/awx/main/tests/inventory.py index 8fa30b7413..fffdbc9bb3 100644 --- a/awx/main/tests/inventory.py +++ b/awx/main/tests/inventory.py @@ -954,9 +954,6 @@ class InventoryUpdatesTest(BaseTransactionTest): self.organization.users.add(self.normal_django_user) self.inventory = self.organization.inventories.create(name='Cloud Inventory') self.group = self.inventory.groups.create(name='Cloud Group') - # Pass test database name in environment for use by the inventory_import - # management command. - os.environ['AWX_TEST_DATABASE_NAME'] = settings.DATABASES['default']['NAME'] def update_inventory_source(self, group, **kwargs): inventory_source = group.inventory_source