diff --git a/moto/iot/models.py b/moto/iot/models.py index 17ea65dc6..2af6eec9b 100644 --- a/moto/iot/models.py +++ b/moto/iot/models.py @@ -12,6 +12,7 @@ from datetime import datetime from boto3 import Session from moto.core import BaseBackend, BaseModel +from moto.utilities.utils import random_string from .exceptions import ( CertificateStateException, DeleteConflictException, @@ -21,7 +22,6 @@ from .exceptions import ( VersionConflictException, ResourceAlreadyExistsException, ) -from moto.utilities.utils import random_string class FakeThing(BaseModel): @@ -144,7 +144,8 @@ class FakeCertificate(BaseModel): self.transfer_data = {} self.creation_date = time.time() self.last_modified_date = self.creation_date - + self.validity_not_before = time.time() - 86400 + self.validity_not_after = time.time() + 86400 self.ca_certificate_id = None self.ca_certificate_pem = ca_certificate_pem if ca_certificate_pem: @@ -174,6 +175,10 @@ class FakeCertificate(BaseModel): "ownedBy": self.owner, "creationDate": self.creation_date, "lastModifiedDate": self.last_modified_date, + "validity": { + "notBefore": self.validity_not_before, + "notAfter": self.validity_not_after, + }, "transferData": self.transfer_data, } diff --git a/scripts/ec2_get_instance_type_offerings.py b/scripts/ec2_get_instance_type_offerings.py index 66ce4449c..c7961b710 100755 --- a/scripts/ec2_get_instance_type_offerings.py +++ b/scripts/ec2_get_instance_type_offerings.py @@ -37,7 +37,9 @@ def main(): for region in regions: for location_type in TYPES: ec2 = boto3.client("ec2", region_name=region) - dest = os.path.join(root_dir, "{0}/{1}/{2}.json".format(PATH, location_type, region)) + dest = os.path.join( + root_dir, "{0}/{1}/{2}.json".format(PATH, location_type, region) + ) try: instances = [] offerings = ec2.describe_instance_type_offerings( @@ -47,8 +49,7 @@ def main(): next_token = offerings.get("NextToken", "") while next_token: offerings = ec2.describe_instance_type_offerings( - LocationType=location_type, - NextToken=next_token + LocationType=location_type, NextToken=next_token ) instances.extend(offerings["InstanceTypeOfferings"]) next_token = offerings.get("NextToken", None) diff --git a/scripts/get_instance_info.py b/scripts/get_instance_info.py index d8f0b4188..56d962a77 100755 --- a/scripts/get_instance_info.py +++ b/scripts/get_instance_info.py @@ -26,9 +26,7 @@ def main(): instances.extend(offerings["InstanceTypes"]) next_token = offerings.get("NextToken", "") while next_token: - offerings = ec2.describe_instance_types( - NextToken=next_token - ) + offerings = ec2.describe_instance_types(NextToken=next_token) instances.extend(offerings["InstanceTypes"]) next_token = offerings.get("NextToken", None) except Exception: @@ -39,7 +37,7 @@ def main(): print("Parsing data") result = {} for instance in instances: - result[instance.get('InstanceType')] = instance + result[instance.get("InstanceType")] = instance root_dir = ( subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) diff --git a/tests/test_iot/test_iot.py b/tests/test_iot/test_iot.py index 1f9c940e9..9bd0fbd52 100644 --- a/tests/test_iot/test_iot.py +++ b/tests/test_iot/test_iot.py @@ -538,6 +538,10 @@ def test_certs(): cert_desc.should.have.key("certificateArn").which.should_not.be.none cert_desc.should.have.key("certificateId").which.should_not.be.none cert_desc.should.have.key("certificatePem").which.should_not.be.none + cert_desc.should.have.key("validity").which.should_not.be.none + validity = cert_desc["validity"] + validity.should.have.key("notBefore").which.should_not.be.none + validity.should.have.key("notAfter").which.should_not.be.none cert_desc.should.have.key("status").which.should.equal("ACTIVE") cert_pem = cert_desc["certificatePem"] diff --git a/update_version_from_git.py b/update_version_from_git.py index 7a51a5c2c..e08ad75f8 100644 --- a/update_version_from_git.py +++ b/update_version_from_git.py @@ -54,7 +54,7 @@ def migrate_version(target_file, new_version): regex = r"['\"](.*)['\"]" migrate_source_attribute( "__version__", - "\"{new_version}\"".format(new_version=new_version), + '"{new_version}"'.format(new_version=new_version), target_file, regex, ) @@ -84,7 +84,9 @@ def prerelease_version(): assert ( initpy_ver > ver ), "the moto/__init__.py version should be newer than the last tagged release." - return "{}.{}.{}.dev{}".format(initpy_ver.major, initpy_ver.minor, initpy_ver.micro, commits_since) + return "{}.{}.{}.dev{}".format( + initpy_ver.major, initpy_ver.minor, initpy_ver.micro, commits_since + ) def read(*parts): @@ -116,7 +118,9 @@ def increase_patch_version(old_version): :param old_version: 2.0.1 :return: 2.0.2.dev """ - return "{}.{}.{}.dev".format(old_version.major, old_version.minor, old_version.micro + 1) + return "{}.{}.{}.dev".format( + old_version.major, old_version.minor, old_version.micro + 1 + ) def release_version_correct(): @@ -154,5 +158,7 @@ if __name__ == "__main__": initpy = os.path.abspath("moto/__init__.py") migrate_version(initpy, new_version) else: - print("Invalid usage. Supply 0 or 1 arguments. " - "Argument can be either a version '1.2.3' or 'patch' if you want to increase the patch-version (1.2.3 -> 1.2.4.dev)") + print( + "Invalid usage. Supply 0 or 1 arguments. " + "Argument can be either a version '1.2.3' or 'patch' if you want to increase the patch-version (1.2.3 -> 1.2.4.dev)" + )