diff --git a/awxkit/awxkit/api/mixins/has_instance_groups.py b/awxkit/awxkit/api/mixins/has_instance_groups.py index 8a61e7618e..1ad339ac9f 100644 --- a/awxkit/awxkit/api/mixins/has_instance_groups.py +++ b/awxkit/awxkit/api/mixins/has_instance_groups.py @@ -1,4 +1,5 @@ -from awxkit.utils import suppress +from contextlib import suppress + import awxkit.exceptions as exc diff --git a/awxkit/awxkit/api/mixins/has_notifications.py b/awxkit/awxkit/api/mixins/has_notifications.py index 15d387712b..7e7b7e8809 100644 --- a/awxkit/awxkit/api/mixins/has_notifications.py +++ b/awxkit/awxkit/api/mixins/has_notifications.py @@ -1,4 +1,5 @@ -from awxkit.utils import suppress +from contextlib import suppress + import awxkit.exceptions as exc diff --git a/awxkit/awxkit/api/pages/instance_groups.py b/awxkit/awxkit/api/pages/instance_groups.py index 28aa614300..057d12c928 100644 --- a/awxkit/awxkit/api/pages/instance_groups.py +++ b/awxkit/awxkit/api/pages/instance_groups.py @@ -1,4 +1,6 @@ -from awxkit.utils import PseudoNamespace, random_title, suppress, update_payload, set_payload_foreign_key_args +from contextlib import suppress + +from awxkit.utils import PseudoNamespace, random_title, update_payload, set_payload_foreign_key_args from awxkit.api.resources import resources from awxkit.api.mixins import HasCreate import awxkit.exceptions as exc diff --git a/awxkit/awxkit/api/pages/inventory.py b/awxkit/awxkit/api/pages/inventory.py index beeb36a5a3..1d0be5d805 100644 --- a/awxkit/awxkit/api/pages/inventory.py +++ b/awxkit/awxkit/api/pages/inventory.py @@ -1,9 +1,10 @@ +from contextlib import suppress import logging import json import re from awxkit.api.pages import Credential, Organization, Project, UnifiedJob, UnifiedJobTemplate -from awxkit.utils import filter_by_class, random_title, update_payload, suppress, not_provided, PseudoNamespace, poll_until, random_utf8 +from awxkit.utils import filter_by_class, random_title, update_payload, not_provided, PseudoNamespace, poll_until, random_utf8 from awxkit.api.mixins import DSAdapter, HasCreate, HasInstanceGroups, HasNotifications, HasVariables, HasCopy from awxkit.api.resources import resources import awxkit.exceptions as exc diff --git a/awxkit/awxkit/api/pages/job_templates.py b/awxkit/awxkit/api/pages/job_templates.py index 7de4cc902e..c93c88af97 100644 --- a/awxkit/awxkit/api/pages/job_templates.py +++ b/awxkit/awxkit/api/pages/job_templates.py @@ -1,6 +1,7 @@ +from contextlib import suppress import json -from awxkit.utils import filter_by_class, not_provided, random_title, suppress, update_payload, set_payload_foreign_key_args, PseudoNamespace +from awxkit.utils import filter_by_class, not_provided, random_title, update_payload, set_payload_foreign_key_args, PseudoNamespace from awxkit.api.pages import Credential, Inventory, Project, UnifiedJobTemplate from awxkit.api.mixins import HasCreate, HasInstanceGroups, HasNotifications, HasSurvey, HasCopy, DSAdapter from awxkit.api.resources import resources diff --git a/awxkit/awxkit/api/pages/notification_templates.py b/awxkit/awxkit/api/pages/notification_templates.py index 0688cc1342..927daaf775 100644 --- a/awxkit/awxkit/api/pages/notification_templates.py +++ b/awxkit/awxkit/api/pages/notification_templates.py @@ -1,9 +1,11 @@ +from contextlib import suppress + from awxkit.api.mixins import HasCreate, HasCopy, DSAdapter from awxkit.api.pages import Organization from awxkit.api.resources import resources from awxkit.config import config import awxkit.exceptions as exc -from awxkit.utils import not_provided, random_title, suppress, PseudoNamespace +from awxkit.utils import not_provided, random_title, PseudoNamespace from . import base from . import page diff --git a/awxkit/awxkit/api/pages/organizations.py b/awxkit/awxkit/api/pages/organizations.py index 4ef9b8a26e..1635eec15b 100644 --- a/awxkit/awxkit/api/pages/organizations.py +++ b/awxkit/awxkit/api/pages/organizations.py @@ -1,5 +1,7 @@ +from contextlib import suppress + from awxkit.api.mixins import HasCreate, HasInstanceGroups, HasNotifications, DSAdapter -from awxkit.utils import random_title, suppress, set_payload_foreign_key_args, PseudoNamespace +from awxkit.utils import random_title, set_payload_foreign_key_args, PseudoNamespace from awxkit.api.resources import resources import awxkit.exceptions as exc from . import base diff --git a/awxkit/awxkit/api/pages/page.py b/awxkit/awxkit/api/pages/page.py index 82872fe6f1..a54ef57ca7 100644 --- a/awxkit/awxkit/api/pages/page.py +++ b/awxkit/awxkit/api/pages/page.py @@ -1,3 +1,4 @@ +from contextlib import suppress import inspect import logging import json @@ -6,7 +7,7 @@ import re from requests import Response import http.client as http -from awxkit.utils import PseudoNamespace, is_relative_endpoint, are_same_endpoint, super_dir_set, suppress, is_list_or_tuple, to_str +from awxkit.utils import PseudoNamespace, is_relative_endpoint, are_same_endpoint, super_dir_set, is_list_or_tuple, to_str from awxkit.api import utils from awxkit.api.client import Connection from awxkit.api.registry import URLRegistry diff --git a/awxkit/awxkit/api/pages/schedules.py b/awxkit/awxkit/api/pages/schedules.py index d1520a0be4..c2da143708 100644 --- a/awxkit/awxkit/api/pages/schedules.py +++ b/awxkit/awxkit/api/pages/schedules.py @@ -1,7 +1,8 @@ +from contextlib import suppress + from awxkit.api.pages import UnifiedJob from awxkit.api.resources import resources import awxkit.exceptions as exc -from awxkit.utils import suppress from . import page from . import base diff --git a/awxkit/awxkit/api/pages/teams.py b/awxkit/awxkit/api/pages/teams.py index 96fafb3341..2ae928e88a 100644 --- a/awxkit/awxkit/api/pages/teams.py +++ b/awxkit/awxkit/api/pages/teams.py @@ -1,5 +1,7 @@ +from contextlib import suppress + from awxkit.api.mixins import HasCreate, DSAdapter -from awxkit.utils import suppress, random_title, PseudoNamespace +from awxkit.utils import random_title, PseudoNamespace from awxkit.api.resources import resources from awxkit.api.pages import Organization from awxkit.exceptions import NoContent diff --git a/awxkit/awxkit/api/pages/workflow_job_template_nodes.py b/awxkit/awxkit/api/pages/workflow_job_template_nodes.py index 8a68476030..bb568af9af 100644 --- a/awxkit/awxkit/api/pages/workflow_job_template_nodes.py +++ b/awxkit/awxkit/api/pages/workflow_job_template_nodes.py @@ -1,9 +1,10 @@ -import awxkit.exceptions as exc +from contextlib import suppress +import awxkit.exceptions as exc from awxkit.api.pages import base, WorkflowJobTemplate, UnifiedJobTemplate, JobTemplate from awxkit.api.mixins import HasCreate, DSAdapter from awxkit.api.resources import resources -from awxkit.utils import update_payload, PseudoNamespace, suppress, random_title +from awxkit.utils import update_payload, PseudoNamespace, random_title from . import page diff --git a/awxkit/awxkit/api/pages/workflow_job_templates.py b/awxkit/awxkit/api/pages/workflow_job_templates.py index b8254f34d9..0eea75fd6f 100644 --- a/awxkit/awxkit/api/pages/workflow_job_templates.py +++ b/awxkit/awxkit/api/pages/workflow_job_templates.py @@ -1,8 +1,9 @@ +from contextlib import suppress import json from awxkit.api.mixins import HasCreate, HasNotifications, HasSurvey, HasCopy, DSAdapter from awxkit.api.pages import Organization, UnifiedJobTemplate -from awxkit.utils import filter_by_class, not_provided, update_payload, random_title, suppress, PseudoNamespace +from awxkit.utils import filter_by_class, not_provided, update_payload, random_title, PseudoNamespace from awxkit.api.resources import resources import awxkit.exceptions as exc diff --git a/awxkit/awxkit/awx/utils.py b/awxkit/awxkit/awx/utils.py index f4aefeeca3..0a96a4cb38 100644 --- a/awxkit/awxkit/awx/utils.py +++ b/awxkit/awxkit/awx/utils.py @@ -1,4 +1,4 @@ -import contextlib +from contextlib import contextmanager, suppress from awxkit import api, utils, exceptions from awxkit.config import config @@ -56,7 +56,7 @@ def check_related(resource): if related in examined: continue print(related) - with utils.suppress(exceptions.NotFound): + with suppress(exceptions.NotFound): child_related = related.get() examined.append(related) if 'results' in child_related and child_related.results: @@ -66,12 +66,12 @@ def check_related(resource): if not isinstance(_related, api.page.TentativePage) or _related in examined: continue print(_related) - with utils.suppress(exceptions.NotFound): + with suppress(exceptions.NotFound): _related.get() examined.append(_related) -@contextlib.contextmanager +@contextmanager def as_user(v, username, password=None): """Context manager to allow running tests as an alternative login user.""" access_token = False diff --git a/awxkit/awxkit/utils/__init__.py b/awxkit/awxkit/utils/__init__.py index 67442bee25..50cbf1cb48 100644 --- a/awxkit/awxkit/utils/__init__.py +++ b/awxkit/awxkit/utils/__init__.py @@ -362,28 +362,6 @@ def are_same_endpoint(first, second): return strip(first) == strip(second) -@contextmanager -def suppress(*exceptions): - """Context manager that suppresses the provided exceptions - - :param exceptions: List of exceptions to suppress - - Usage:: - >>> with suppress(ZeroDivisionError): - >>> foo = 1/0 - >>> # This code will not run - - Note: This is an intermediate framework and test refactoring tool. - It's almost never a good idea to plan on using this. Also, note - that after the suppressed exception has been caught, no further - statements in the with block will be executed. - """ - try: - yield - except exceptions: - pass - - def utcnow(): """Provide a wrapped copy of the built-in utcnow that can be easily mocked.""" return datetime.utcnow() diff --git a/awxkit/test/test_utils.py b/awxkit/test/test_utils.py index 1a0a5412f2..4306d86376 100644 --- a/awxkit/test/test_utils.py +++ b/awxkit/test/test_utils.py @@ -216,32 +216,6 @@ class RecordingCallback(object): return self.value -def test_suppress(): - callback = RecordingCallback() - - with utils.suppress(ZeroDivisionError, IndexError): - raise ZeroDivisionError - callback() - raise IndexError - raise KeyError - assert callback.call_count == 0 - - with utils.suppress(ZeroDivisionError, IndexError): - raise IndexError - callback() - raise ZeroDivisionError - raise KeyError - assert callback.call_count == 0 - - with pytest.raises(KeyError): - with utils.suppress(ZeroDivisionError, IndexError): - raise KeyError - callback() - raise ZeroDivisionError - raise IndexError - assert callback.call_count == 0 - - class TestPollUntil(object): @pytest.mark.parametrize('timeout', [0, 0.0, -0.5, -1, -9999999]) def test_callback_called_once_for_non_positive_timeout(self, timeout):