diff --git a/awx/asgi.py b/awx/asgi.py index 40640a4a19..698c5f7533 100644 --- a/awx/asgi.py +++ b/awx/asgi.py @@ -4,12 +4,11 @@ import os import logging import django from awx import __version__ as tower_version - # Prepare the AWX environment. from awx import prepare_env, MODE +from channels.routing import get_default_application # noqa prepare_env() # NOQA -from channels.routing import get_default_application """ diff --git a/awx/main/management/commands/callback_stats.py b/awx/main/management/commands/callback_stats.py index 74b7815b91..0a61089607 100644 --- a/awx/main/management/commands/callback_stats.py +++ b/awx/main/management/commands/callback_stats.py @@ -34,7 +34,7 @@ class Command(BaseCommand): if clear: for i in range(12): sys.stdout.write('\x1b[1A\x1b[2K') - for l in lines: - print(l) + for line in lines: + print(line) clear = True time.sleep(.25) diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index 6e5ffce508..0bf553d385 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -2624,22 +2624,22 @@ class satellite6(PluginFileInjector): "environment": {"prefix": "foreman_environment_", "separator": "", "key": "foreman['environment_name'] | lower | regex_replace(' ', '') | " - "regex_replace('[^A-Za-z0-9\_]', '_') | regex_replace('none', '')"}, # NOQA: W605 + "regex_replace('[^A-Za-z0-9_]', '_') | regex_replace('none', '')"}, "location": {"prefix": "foreman_location_", "separator": "", - "key": "foreman['location_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_')"}, + "key": "foreman['location_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')"}, "organization": {"prefix": "foreman_organization_", "separator": "", - "key": "foreman['organization_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_')"}, + "key": "foreman['organization_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')"}, "lifecycle_environment": {"prefix": "foreman_lifecycle_environment_", "separator": "", "key": "foreman['content_facet_attributes']['lifecycle_environment_name'] | " - "lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_')"}, + "lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')"}, "content_view": {"prefix": "foreman_content_view_", "separator": "", "key": "foreman['content_facet_attributes']['content_view_name'] | " - "lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_')"} - } + "lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_')"} + } ret['legacy_hostvars'] = True # convert hostvar structure to the form used by the script ret['want_params'] = True diff --git a/awx/main/scheduler/dag_simple.py b/awx/main/scheduler/dag_simple.py index 065983577a..5a354edbba 100644 --- a/awx/main/scheduler/dag_simple.py +++ b/awx/main/scheduler/dag_simple.py @@ -152,8 +152,8 @@ class SimpleDAG(object): return self._get_children_by_label(this_ord, label) else: nodes = [] - for l in self.node_from_edges_by_label.keys(): - nodes.extend(self._get_children_by_label(this_ord, l)) + for label_obj in self.node_from_edges_by_label.keys(): + nodes.extend(self._get_children_by_label(this_ord, label_obj)) return nodes def _get_parents_by_label(self, node_index, label): @@ -168,8 +168,8 @@ class SimpleDAG(object): return self._get_parents_by_label(this_ord, label) else: nodes = [] - for l in self.node_to_edges_by_label.keys(): - nodes.extend(self._get_parents_by_label(this_ord, l)) + for label_obj in self.node_to_edges_by_label.keys(): + nodes.extend(self._get_parents_by_label(this_ord, label_obj)) return nodes def get_root_nodes(self): diff --git a/awx/main/signals.py b/awx/main/signals.py index dece9f49d6..adfbc65d01 100644 --- a/awx/main/signals.py +++ b/awx/main/signals.py @@ -150,9 +150,9 @@ def rbac_activity_stream(instance, sender, **kwargs): def cleanup_detached_labels_on_deleted_parent(sender, instance, **kwargs): - for l in instance.labels.all(): - if l.is_candidate_for_detach(): - l.delete() + for label in instance.labels.all(): + if label.is_candidate_for_detach(): + label.delete() def save_related_job_templates(sender, instance, **kwargs): @@ -393,7 +393,7 @@ def activity_stream_create(sender, instance, created, **kwargs): '{} ({})'.format(c.name, c.id) for c in instance.credentials.iterator() ] - changes['labels'] = [l.name for l in instance.labels.iterator()] + changes['labels'] = [label.name for label in instance.labels.iterator()] if 'extra_vars' in changes: changes['extra_vars'] = instance.display_extra_vars() if type(instance) == OAuth2AccessToken: diff --git a/awx/main/tests/data/inventory/plugins/satellite6/files/foreman.yml b/awx/main/tests/data/inventory/plugins/satellite6/files/foreman.yml index a63520c2f0..11d6f67220 100644 --- a/awx/main/tests/data/inventory/plugins/satellite6/files/foreman.yml +++ b/awx/main/tests/data/inventory/plugins/satellite6/files/foreman.yml @@ -3,19 +3,19 @@ compose: ansible_ssh_host: foreman['ip6'] | default(foreman['ip'], true) group_prefix: foo_group_prefix keyed_groups: -- key: foreman['environment_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_') | regex_replace('none', '') +- key: foreman['environment_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_') | regex_replace('none', '') prefix: foreman_environment_ separator: '' -- key: foreman['location_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_') +- key: foreman['location_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_') prefix: foreman_location_ separator: '' -- key: foreman['organization_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_') +- key: foreman['organization_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_') prefix: foreman_organization_ separator: '' -- key: foreman['content_facet_attributes']['lifecycle_environment_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_') +- key: foreman['content_facet_attributes']['lifecycle_environment_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_') prefix: foreman_lifecycle_environment_ separator: '' -- key: foreman['content_facet_attributes']['content_view_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9\_]', '_') +- key: foreman['content_facet_attributes']['content_view_name'] | lower | regex_replace(' ', '') | regex_replace('[^A-Za-z0-9_]', '_') prefix: foreman_content_view_ separator: '' - key: '"%s-%s-%s" | format(app, tier, color)' diff --git a/awx/main/tests/factories/tower.py b/awx/main/tests/factories/tower.py index 1da5f126f9..87a7b436eb 100644 --- a/awx/main/tests/factories/tower.py +++ b/awx/main/tests/factories/tower.py @@ -319,11 +319,11 @@ def create_organization(name, roles=None, persisted=True, **kwargs): users = generate_users(org, teams, False, persisted, users=kwargs.get('users')) if 'labels' in kwargs: - for l in kwargs['labels']: - if type(l) is Label: - labels[l.name] = l + for label_obj in kwargs['labels']: + if type(label_obj) is Label: + labels[label_obj.name] = label_obj else: - labels[l] = mk_label(l, organization=org, persisted=persisted) + labels[label_obj] = mk_label(label_obj, organization=org, persisted=persisted) if 'notification_templates' in kwargs: for nt in kwargs['notification_templates']: diff --git a/awx/main/tests/functional/analytics/test_collectors.py b/awx/main/tests/functional/analytics/test_collectors.py index 500cd89053..ff53ac6bb4 100644 --- a/awx/main/tests/functional/analytics/test_collectors.py +++ b/awx/main/tests/functional/analytics/test_collectors.py @@ -88,7 +88,7 @@ def test_copy_tables_unified_job_query( with tempfile.TemporaryDirectory() as tmpdir: collectors.copy_tables(time_start, tmpdir, subset="unified_jobs") with open(os.path.join(tmpdir, "unified_jobs_table.csv")) as f: - lines = "".join([l for l in f]) + lines = "".join([line for line in f]) assert project_update_name in lines assert inventory_update_name in lines @@ -139,9 +139,9 @@ def test_copy_tables_workflow_job_node_query(sqlite_copy_expert, workflow_job): reader = csv.reader(f) # Pop the headers next(reader) - lines = [l for l in reader] + lines = [line for line in reader] - ids = [int(l[0]) for l in lines] + ids = [int(line[0]) for line in lines] assert ids == list( workflow_job.workflow_nodes.all().values_list("id", flat=True) diff --git a/awx/main/tests/functional/commands/test_secret_key_regeneration.py b/awx/main/tests/functional/commands/test_secret_key_regeneration.py index dffaacb866..d27b4329cd 100644 --- a/awx/main/tests/functional/commands/test_secret_key_regeneration.py +++ b/awx/main/tests/functional/commands/test_secret_key_regeneration.py @@ -65,6 +65,7 @@ class TestKeyRegeneration: assert nc['token'].startswith(PREFIX) Slack = nt.CLASS_FOR_NOTIFICATION_TYPE[nt.notification_type] + class TestBackend(Slack): def __init__(self, *args, **kw): diff --git a/awx/main/tests/functional/test_dispatch.py b/awx/main/tests/functional/test_dispatch.py index aa3c42ce26..caf54f0161 100644 --- a/awx/main/tests/functional/test_dispatch.py +++ b/awx/main/tests/functional/test_dispatch.py @@ -18,6 +18,8 @@ from awx.main.dispatch.worker import BaseWorker, TaskWorker ''' Prevent logger. calls from triggering database operations ''' + + @pytest.fixture(autouse=True) def _disable_database_settings(mocker): m = mocker.patch('awx.conf.settings.SettingsWrapper.all_supported_settings', new_callable=mock.PropertyMock) diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index 031945dd6d..57d30bc23f 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -247,7 +247,7 @@ TEMPLATES = [ 'loaders': [( 'django.template.loaders.cached.Loader', ('django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader',), + 'django.template.loaders.app_directories.Loader',), )], 'builtins': ['awx.main.templatetags.swagger'], },