Lazily import submodules

This commit is contained in:
Stijn Seghers 2020-01-17 14:08:06 +13:00
commit b8820009e8
No known key found for this signature in database
GPG key ID: BF6A2BFEA196E7B6
4 changed files with 214 additions and 184 deletions

View file

@ -33,14 +33,15 @@ class BaseMockAWS(object):
nested_count = 0
def __init__(self, backends):
from moto.instance_metadata import instance_metadata_backend
from moto.core import moto_api_backend
self.backends = backends
self.backends_for_urls = {}
from moto.backends import BACKENDS
default_backends = {
"instance_metadata": BACKENDS["instance_metadata"]["global"],
"moto_api": BACKENDS["moto_api"]["global"],
"instance_metadata": instance_metadata_backend,
"moto_api": moto_api_backend,
}
self.backends_for_urls.update(self.backends)
self.backends_for_urls.update(default_backends)
@ -721,12 +722,12 @@ class deprecated_base_decorator(base_decorator):
class MotoAPIBackend(BaseBackend):
def reset(self):
from moto.backends import BACKENDS
import moto.backends as backends
for name, backends in BACKENDS.items():
for name, backends_ in backends.named_backends():
if name == "moto_api":
continue
for region_name, backend in backends.items():
for region_name, backend in backends_.items():
backend.reset()
self.__init__()