diff --git a/awx/main/tasks.py b/awx/main/tasks.py index fa70802dda..df64e55ede 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -125,6 +125,12 @@ class BaseTask(Task): # Set environment variables needed for inventory and job event # callbacks to work. env['ANSIBLE_NOCOLOR'] = '1' # Prevent output of escape sequences. + # Update PYTHONPATH to use local site-packages. + python_paths = env.get('PYTHONPATH', '').split(os.pathsep) + local_site_packages = self.get_path_to('..', 'lib', 'site-packages') + if local_site_packages not in python_paths: + python_paths.insert(0, local_site_packages) + env['PYTHONPATH'] = os.pathsep.join(python_paths) return env def build_safe_env(self, instance, **kwargs): @@ -799,12 +805,6 @@ class RunInventoryUpdate(BaseTask): Build environment dictionary for inventory import. ''' env = super(RunInventoryUpdate, self).build_env(inventory_update, **kwargs) - # Update PYTHONPATH to use local site-packages for inventory scripts. - python_paths = env.get('PYTHONPATH', '').split(os.pathsep) - local_site_packages = self.get_path_to('..', 'lib', 'site-packages') - if local_site_packages not in python_paths: - python_paths.insert(0, local_site_packages) - env['PYTHONPATH'] = os.pathsep.join(python_paths) # Pass inventory source ID to inventory script. inventory_source = inventory_update.inventory_source env['INVENTORY_SOURCE_ID'] = str(inventory_source.pk) diff --git a/awx/main/tests/base.py b/awx/main/tests/base.py index 97527fe54e..14b270d454 100644 --- a/awx/main/tests/base.py +++ b/awx/main/tests/base.py @@ -47,6 +47,10 @@ class BaseTestMixin(object): # 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] + # For now, prevent tests from trying to use celery for job event + # callbacks. + if settings.BROKER_URL.startswith('amqp://'): + settings.BROKER_URL = 'django://' # Make temp job status directory for unit tests. job_status_dir = tempfile.mkdtemp() self._temp_project_dirs.append(job_status_dir)