diff --git a/moto/iam/models.py b/moto/iam/models.py index 8d6de8062..7d2c05430 100644 --- a/moto/iam/models.py +++ b/moto/iam/models.py @@ -474,12 +474,8 @@ class AWSManagedPolicy(ManagedPolicy): default_version_id=data.get("DefaultVersionId"), path=data.get("Path"), document=json.dumps(data.get("Document")), - create_date=datetime.strptime( - data.get("CreateDate"), "%Y-%m-%dT%H:%M:%S+00:00" # type: ignore[arg-type] - ), - update_date=datetime.strptime( - data.get("UpdateDate"), "%Y-%m-%dT%H:%M:%S+00:00" # type: ignore[arg-type] - ), + create_date=datetime.fromisoformat(data["CreateDate"]), + update_date=datetime.fromisoformat(data["UpdateDate"]), ) @property diff --git a/moto/iam/utils.py b/moto/iam/utils.py index a31aed6f2..9f17d3ff3 100644 --- a/moto/iam/utils.py +++ b/moto/iam/utils.py @@ -38,16 +38,12 @@ def generate_access_key_id_from_account_id( def random_alphanumeric(length: int) -> str: - return "".join( - str(random.choice(string.ascii_letters + string.digits + "+" + "/")) - for _ in range(length) - ) + options = string.ascii_letters + string.digits + "+" + "/" + return "".join(random.choices(options, k=length)) def random_resource_id(size: int = 20) -> str: - chars = list(range(10)) + list(string.ascii_lowercase) - - return "".join(str(random.choice(chars)) for x in range(size)) + return "".join(random.choices(string.ascii_lowercase + string.digits, k=size)) def random_role_id(account_id: str) -> str: @@ -57,12 +53,8 @@ def random_role_id(account_id: str) -> str: def random_access_key() -> str: - return "".join( - str(random.choice(string.ascii_uppercase + string.digits)) for _ in range(16) - ) + return "".join(random.choices(string.ascii_uppercase + string.digits, k=16)) def random_policy_id() -> str: - return "A" + "".join( - random.choice(string.ascii_uppercase + string.digits) for _ in range(20) - ) + return "A" + "".join(random.choices(string.ascii_uppercase + string.digits, k=20))