mirror of
https://github.com/ZwareBear/awx.git
synced 2026-03-20 07:43:35 -05:00
Fixes to get flake8 and unit/functional tests passing.
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import socket
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
@@ -27,7 +26,7 @@ class InstanceManager(models.Manager):
|
|||||||
"""Return the currently active instance."""
|
"""Return the currently active instance."""
|
||||||
# If we are running unit tests, return a stub record.
|
# If we are running unit tests, return a stub record.
|
||||||
if len(sys.argv) >= 2 and sys.argv[1] == 'test':
|
if len(sys.argv) >= 2 and sys.argv[1] == 'test':
|
||||||
return self.model(id=1, primary=True,
|
return self.model(id=1,
|
||||||
hostname='localhost',
|
hostname='localhost',
|
||||||
uuid='00000000-0000-0000-0000-000000000000')
|
uuid='00000000-0000-0000-0000-000000000000')
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class Socket(object):
|
|||||||
def port(self):
|
def port(self):
|
||||||
return {
|
return {
|
||||||
'callbacks': os.environ.get('CALLBACK_CONSUMER_PORT',
|
'callbacks': os.environ.get('CALLBACK_CONSUMER_PORT',
|
||||||
settings.CALLBACK_CONSUMER_PORT),
|
getattr(settings, 'CALLBACK_CONSUMER_PORT', 'tcp://127.0.0.1:5557')),
|
||||||
'task_commands': settings.TASK_COMMAND_PORT,
|
'task_commands': settings.TASK_COMMAND_PORT,
|
||||||
'websocket': settings.SOCKETIO_NOTIFICATION_PORT,
|
'websocket': settings.SOCKETIO_NOTIFICATION_PORT,
|
||||||
'fact_cache': settings.FACT_CACHE_PORT,
|
'fact_cache': settings.FACT_CACHE_PORT,
|
||||||
|
|||||||
@@ -958,7 +958,7 @@ class RunJob(BaseTask):
|
|||||||
update_inventory_computed_fields.delay(inventory.id, True)
|
update_inventory_computed_fields.delay(inventory.id, True)
|
||||||
# Update job event fields after job has completed (only when using REST
|
# Update job event fields after job has completed (only when using REST
|
||||||
# API callback).
|
# API callback).
|
||||||
if not settings.CALLBACK_CONSUMER_PORT:
|
if not getattr(settings, 'CALLBACK_CONSUMER_PORT', None) and not getattr(settings, 'CALLBACK_QUEUE', None):
|
||||||
for job_event in job.job_events.order_by('pk'):
|
for job_event in job.job_events.order_by('pk'):
|
||||||
job_event.save(post_process=True)
|
job_event.save(post_process=True)
|
||||||
|
|
||||||
@@ -1519,7 +1519,8 @@ class RunAdHocCommand(BaseTask):
|
|||||||
env['ANSIBLE_LOAD_CALLBACK_PLUGINS'] = '1'
|
env['ANSIBLE_LOAD_CALLBACK_PLUGINS'] = '1'
|
||||||
env['REST_API_URL'] = settings.INTERNAL_API_URL
|
env['REST_API_URL'] = settings.INTERNAL_API_URL
|
||||||
env['REST_API_TOKEN'] = ad_hoc_command.task_auth_token or ''
|
env['REST_API_TOKEN'] = ad_hoc_command.task_auth_token or ''
|
||||||
env['CALLBACK_CONSUMER_PORT'] = str(settings.CALLBACK_CONSUMER_PORT)
|
env['CALLBACK_QUEUE'] = settings.CALLBACK_QUEUE
|
||||||
|
env['CALLBACK_CONNECTION'] = settings.BROKER_URL
|
||||||
env['ANSIBLE_SFTP_BATCH_MODE'] = 'False'
|
env['ANSIBLE_SFTP_BATCH_MODE'] = 'False'
|
||||||
if getattr(settings, 'JOB_CALLBACK_DEBUG', False):
|
if getattr(settings, 'JOB_CALLBACK_DEBUG', False):
|
||||||
env['JOB_CALLBACK_DEBUG'] = '2'
|
env['JOB_CALLBACK_DEBUG'] = '2'
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import tempfile
|
|||||||
import time
|
import time
|
||||||
import urllib
|
import urllib
|
||||||
from multiprocessing import Process
|
from multiprocessing import Process
|
||||||
from subprocess import Popen
|
|
||||||
import re
|
import re
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
@@ -31,7 +30,6 @@ from django.utils.encoding import force_text
|
|||||||
|
|
||||||
# AWX
|
# AWX
|
||||||
from awx.main.models import * # noqa
|
from awx.main.models import * # noqa
|
||||||
from awx.main.management.commands.run_callback_receiver import CallbackReceiver
|
|
||||||
from awx.main.management.commands.run_task_system import run_taskmanager
|
from awx.main.management.commands.run_task_system import run_taskmanager
|
||||||
from awx.main.utils import get_ansible_version
|
from awx.main.utils import get_ansible_version
|
||||||
from awx.main.task_engine import TaskEngager as LicenseWriter
|
from awx.main.task_engine import TaskEngager as LicenseWriter
|
||||||
@@ -45,45 +43,6 @@ TEST_PLAYBOOK = '''- hosts: mygroup
|
|||||||
command: test 1 = 1
|
command: test 1 = 1
|
||||||
'''
|
'''
|
||||||
|
|
||||||
class QueueTestMixin(object):
|
|
||||||
def start_queue(self):
|
|
||||||
self.start_redis()
|
|
||||||
receiver = CallbackReceiver()
|
|
||||||
self.queue_process = Process(target=receiver.run_subscriber,
|
|
||||||
args=(False,))
|
|
||||||
self.queue_process.start()
|
|
||||||
|
|
||||||
def terminate_queue(self):
|
|
||||||
if hasattr(self, 'queue_process'):
|
|
||||||
self.queue_process.terminate()
|
|
||||||
self.stop_redis()
|
|
||||||
|
|
||||||
def start_redis(self):
|
|
||||||
if not getattr(self, 'redis_process', None):
|
|
||||||
# Centos 6.5 redis is runnable by non-root user but is not in a normal users path by default
|
|
||||||
env = dict(os.environ)
|
|
||||||
env['PATH'] = '%s:/usr/sbin/' % env['PATH']
|
|
||||||
self.redis_process = Popen('echo "port 16379" | redis-server - > /dev/null',
|
|
||||||
shell=True, executable='/bin/bash',
|
|
||||||
env=env)
|
|
||||||
|
|
||||||
def stop_redis(self):
|
|
||||||
if getattr(self, 'redis_process', None):
|
|
||||||
self.redis_process.kill()
|
|
||||||
self.redis_process = None
|
|
||||||
|
|
||||||
|
|
||||||
# The observed effect of not calling terminate_queue() if you call start_queue() are
|
|
||||||
# an hang on test cleanup database delete. Thus, to ensure terminate_queue() is called
|
|
||||||
# whenever start_queue() is called just inherit from this class when you want to use the queue.
|
|
||||||
class QueueStartStopTestMixin(QueueTestMixin):
|
|
||||||
def setUp(self):
|
|
||||||
super(QueueStartStopTestMixin, self).setUp()
|
|
||||||
self.start_queue()
|
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
super(QueueStartStopTestMixin, self).tearDown()
|
|
||||||
self.terminate_queue()
|
|
||||||
|
|
||||||
class MockCommonlySlowTestMixin(object):
|
class MockCommonlySlowTestMixin(object):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -92,7 +51,7 @@ class MockCommonlySlowTestMixin(object):
|
|||||||
super(MockCommonlySlowTestMixin, self).__init__(*args, **kwargs)
|
super(MockCommonlySlowTestMixin, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
ansible_version = get_ansible_version()
|
ansible_version = get_ansible_version()
|
||||||
class BaseTestMixin(QueueTestMixin, MockCommonlySlowTestMixin):
|
class BaseTestMixin(MockCommonlySlowTestMixin):
|
||||||
'''
|
'''
|
||||||
Mixin with shared code for use by all test cases.
|
Mixin with shared code for use by all test cases.
|
||||||
'''
|
'''
|
||||||
@@ -733,7 +692,7 @@ class BaseLiveServerTest(BaseTestMixin, django.test.LiveServerTestCase):
|
|||||||
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
|
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
|
||||||
ANSIBLE_TRANSPORT='local',
|
ANSIBLE_TRANSPORT='local',
|
||||||
DEBUG=True)
|
DEBUG=True)
|
||||||
class BaseJobExecutionTest(QueueStartStopTestMixin, BaseLiveServerTest):
|
class BaseJobExecutionTest(BaseLiveServerTest):
|
||||||
'''
|
'''
|
||||||
Base class for celery task tests.
|
Base class for celery task tests.
|
||||||
'''
|
'''
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ def mk_instance(persisted=True):
|
|||||||
if not persisted:
|
if not persisted:
|
||||||
raise RuntimeError('creating an Instance requires persisted=True')
|
raise RuntimeError('creating an Instance requires persisted=True')
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
return Instance.objects.get_or_create(uuid=settings.SYSTEM_UUID, primary=True, hostname="instance.example.org")
|
return Instance.objects.get_or_create(uuid=settings.SYSTEM_UUID, hostname="instance.example.org")
|
||||||
|
|
||||||
|
|
||||||
def mk_organization(name, description=None, persisted=True):
|
def mk_organization(name, description=None, persisted=True):
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ def test_process_facts_message_ansible_overwrite(fact_scans, fact_msg_ansible):
|
|||||||
# Ensure that the message flows from the socket through to process_fact_message()
|
# Ensure that the message flows from the socket through to process_fact_message()
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_run_receiver(mocker, fact_msg_ansible):
|
def test_run_receiver(mocker, fact_msg_ansible):
|
||||||
mocker.patch("awx.main.socket.Socket.listen", return_value=[fact_msg_ansible])
|
mocker.patch("awx.main.socket_queue.Socket.listen", return_value=[fact_msg_ansible])
|
||||||
|
|
||||||
receiver = FactCacheReceiver()
|
receiver = FactCacheReceiver()
|
||||||
mocker.patch.object(receiver, 'process_fact_message', return_value=None)
|
mocker.patch.object(receiver, 'process_fact_message', return_value=None)
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ def user_project(user):
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def instance(settings):
|
def instance(settings):
|
||||||
return Instance.objects.create(uuid=settings.SYSTEM_UUID, primary=True, hostname="instance.example.org")
|
return Instance.objects.create(uuid=settings.SYSTEM_UUID, hostname="instance.example.org")
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def organization(instance):
|
def organization(instance):
|
||||||
|
|||||||
@@ -18,4 +18,4 @@ exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory/ec2.py,awx/plugins
|
|||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore=E201,E203,E221,E225,E231,E241,E251,E261,E265,E302,E303,E501,W291,W391,W293,E731,F405
|
ignore=E201,E203,E221,E225,E231,E241,E251,E261,E265,E302,E303,E501,W291,W391,W293,E731,F405
|
||||||
exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory,awx/ui,awx/api/urls.py,awx/main/migrations,awx/main/south_migrations,awx/main/tests/data,node_modules/,awx/projects/,tools/docker,awx/settings/local_settings.py
|
exclude=.tox,venv,awx/lib/site-packages,awx/plugins/inventory,awx/ui,awx/api/urls.py,awx/main/migrations,awx/main/south_migrations,awx/main/tests/data,node_modules/,awx/projects/,tools/docker,awx/settings/local_*.py
|
||||||
|
|||||||
Reference in New Issue
Block a user