From d6d2a38c76ba15051424c237ece0b12b6c1d5d11 Mon Sep 17 00:00:00 2001 From: Bert Blommers Date: Thu, 30 Apr 2020 12:11:33 +0100 Subject: [PATCH] Fix circular import issue --- moto/core/responses.py | 5 ++++- moto/{core => iam}/access_control.py | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) rename moto/{core => iam}/access_control.py (99%) diff --git a/moto/core/responses.py b/moto/core/responses.py index 9a46f8ac5..508bd8c59 100644 --- a/moto/core/responses.py +++ b/moto/core/responses.py @@ -11,7 +11,6 @@ import requests import pytz -from moto.core.access_control import IAMRequest, S3IAMRequest from moto.core.exceptions import DryRunClientError from jinja2 import Environment, DictLoader, TemplateNotFound @@ -134,9 +133,13 @@ class ActionAuthenticatorMixin(object): ActionAuthenticatorMixin.request_count += 1 def _authenticate_and_authorize_normal_action(self): + from moto.iam.access_control import IAMRequest + self._authenticate_and_authorize_action(IAMRequest) def _authenticate_and_authorize_s3_action(self): + from moto.iam.access_control import S3IAMRequest + self._authenticate_and_authorize_action(S3IAMRequest) @staticmethod diff --git a/moto/core/access_control.py b/moto/iam/access_control.py similarity index 99% rename from moto/core/access_control.py rename to moto/iam/access_control.py index 8ba0c3ba1..bcde25d9e 100644 --- a/moto/core/access_control.py +++ b/moto/iam/access_control.py @@ -25,8 +25,6 @@ from botocore.credentials import Credentials from six import string_types from moto.core import ACCOUNT_ID -from moto.iam.models import Policy -from moto.iam import iam_backend from moto.core.exceptions import ( SignatureDoesNotMatchError, AccessDeniedError, @@ -44,6 +42,7 @@ from moto.s3.exceptions import ( S3SignatureDoesNotMatchError, ) from moto.sts import sts_backend +from .models import iam_backend, Policy log = logging.getLogger(__name__)