Remove ResourceWarnings when loading AMIS and INSTANCE_TYPES

When loading AMIS and INSTANCE_TYPES in moto.ec2.models a file handle is
potentially leaked when loading the JSON.  This results in a
ResourceWarning which is a bit of unnecessary noise.

Rather than pass a call to open() to json.load() this instead uses a
context-manager in a small private helper function.

This fixes https://github.com/spulec/moto/issues/2620
This commit is contained in:
rossjones 2020-02-04 10:02:43 +00:00
parent 70b2d3ab3c
commit 6d64b12b41

View File

@ -139,17 +139,22 @@ from .utils import (
rsa_public_key_fingerprint, rsa_public_key_fingerprint,
) )
INSTANCE_TYPES = json.load(
open(resource_filename(__name__, "resources/instance_types.json"), "r") def _load_resource(filename):
with open(filename, "r") as f:
return json.load(f)
INSTANCE_TYPES = _load_resource(
resource_filename(__name__, "resources/instance_types.json")
) )
AMIS = json.load(
open( AMIS = _load_resource(
os.environ.get("MOTO_AMIS_PATH") os.environ.get("MOTO_AMIS_PATH")
or resource_filename(__name__, "resources/amis.json"), or resource_filename(__name__, "resources/amis.json"),
"r",
)
) )
OWNER_ID = "111122223333" OWNER_ID = "111122223333"