Test iot certs' validity dates
This commit is contained in:
parent
e94a3e39df
commit
457b18b2db
9 changed files with 38 additions and 27 deletions
0
moto/ec2/responses/amis.py
Executable file → Normal file
0
moto/ec2/responses/amis.py
Executable file → Normal file
0
moto/iam/models.py
Executable file → Normal file
0
moto/iam/models.py
Executable file → Normal file
|
|
@ -144,8 +144,8 @@ class FakeCertificate(BaseModel):
|
||||||
self.transfer_data = {}
|
self.transfer_data = {}
|
||||||
self.creation_date = time.time()
|
self.creation_date = time.time()
|
||||||
self.last_modified_date = self.creation_date
|
self.last_modified_date = self.creation_date
|
||||||
self.validity_not_before = (time.time() - 86400)
|
self.validity_not_before = time.time() - 86400
|
||||||
self.validity_not_after = (time.time() + 86400)
|
self.validity_not_after = time.time() + 86400
|
||||||
self.ca_certificate_id = None
|
self.ca_certificate_id = None
|
||||||
self.ca_certificate_pem = ca_certificate_pem
|
self.ca_certificate_pem = ca_certificate_pem
|
||||||
if ca_certificate_pem:
|
if ca_certificate_pem:
|
||||||
|
|
@ -177,7 +177,7 @@ class FakeCertificate(BaseModel):
|
||||||
"lastModifiedDate": self.last_modified_date,
|
"lastModifiedDate": self.last_modified_date,
|
||||||
"validity": {
|
"validity": {
|
||||||
"notBefore": self.validity_not_before,
|
"notBefore": self.validity_not_before,
|
||||||
"notAfter": self.validity_not_after
|
"notAfter": self.validity_not_after,
|
||||||
},
|
},
|
||||||
"transferData": self.transfer_data,
|
"transferData": self.transfer_data,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@ def main():
|
||||||
for region in regions:
|
for region in regions:
|
||||||
for location_type in TYPES:
|
for location_type in TYPES:
|
||||||
ec2 = boto3.client("ec2", region_name=region)
|
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:
|
try:
|
||||||
instances = []
|
instances = []
|
||||||
offerings = ec2.describe_instance_type_offerings(
|
offerings = ec2.describe_instance_type_offerings(
|
||||||
|
|
@ -47,8 +49,7 @@ def main():
|
||||||
next_token = offerings.get("NextToken", "")
|
next_token = offerings.get("NextToken", "")
|
||||||
while next_token:
|
while next_token:
|
||||||
offerings = ec2.describe_instance_type_offerings(
|
offerings = ec2.describe_instance_type_offerings(
|
||||||
LocationType=location_type,
|
LocationType=location_type, NextToken=next_token
|
||||||
NextToken=next_token
|
|
||||||
)
|
)
|
||||||
instances.extend(offerings["InstanceTypeOfferings"])
|
instances.extend(offerings["InstanceTypeOfferings"])
|
||||||
next_token = offerings.get("NextToken", None)
|
next_token = offerings.get("NextToken", None)
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,7 @@ def main():
|
||||||
instances.extend(offerings["InstanceTypes"])
|
instances.extend(offerings["InstanceTypes"])
|
||||||
next_token = offerings.get("NextToken", "")
|
next_token = offerings.get("NextToken", "")
|
||||||
while next_token:
|
while next_token:
|
||||||
offerings = ec2.describe_instance_types(
|
offerings = ec2.describe_instance_types(NextToken=next_token)
|
||||||
NextToken=next_token
|
|
||||||
)
|
|
||||||
instances.extend(offerings["InstanceTypes"])
|
instances.extend(offerings["InstanceTypes"])
|
||||||
next_token = offerings.get("NextToken", None)
|
next_token = offerings.get("NextToken", None)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
@ -39,7 +37,7 @@ def main():
|
||||||
print("Parsing data")
|
print("Parsing data")
|
||||||
result = {}
|
result = {}
|
||||||
for instance in instances:
|
for instance in instances:
|
||||||
result[instance.get('InstanceType')] = instance
|
result[instance.get("InstanceType")] = instance
|
||||||
|
|
||||||
root_dir = (
|
root_dir = (
|
||||||
subprocess.check_output(["git", "rev-parse", "--show-toplevel"])
|
subprocess.check_output(["git", "rev-parse", "--show-toplevel"])
|
||||||
|
|
|
||||||
22
setup.py
22
setup.py
|
|
@ -104,11 +104,19 @@ all_server_deps = all_extra_deps + ["flask", "flask-cors"]
|
||||||
# i.e. even those without extra dependencies.
|
# i.e. even those without extra dependencies.
|
||||||
# Would be good for future-compatibility, I guess.
|
# Would be good for future-compatibility, I guess.
|
||||||
extras_per_service = {
|
extras_per_service = {
|
||||||
"apigateway": [_dep_python_jose_py2, _dep_python_jose_py3, _dep_python_jose_ecdsa_pin],
|
"apigateway": [
|
||||||
|
_dep_python_jose_py2,
|
||||||
|
_dep_python_jose_py3,
|
||||||
|
_dep_python_jose_ecdsa_pin,
|
||||||
|
],
|
||||||
"awslambda": [_dep_docker],
|
"awslambda": [_dep_docker],
|
||||||
"batch": [_dep_docker],
|
"batch": [_dep_docker],
|
||||||
"cloudformation": [_dep_docker, _dep_PyYAML, _dep_cfn_lint, _dep_decorator],
|
"cloudformation": [_dep_docker, _dep_PyYAML, _dep_cfn_lint, _dep_decorator],
|
||||||
"cognitoidp": [_dep_python_jose_py2, _dep_python_jose_py3, _dep_python_jose_ecdsa_pin],
|
"cognitoidp": [
|
||||||
|
_dep_python_jose_py2,
|
||||||
|
_dep_python_jose_py3,
|
||||||
|
_dep_python_jose_ecdsa_pin,
|
||||||
|
],
|
||||||
"dynamodb2": [_dep_docker],
|
"dynamodb2": [_dep_docker],
|
||||||
"dynamodbstreams": [_dep_docker],
|
"dynamodbstreams": [_dep_docker],
|
||||||
"ec2": [_dep_docker, _dep_sshpubkeys_py2, _dep_sshpubkeys_py3],
|
"ec2": [_dep_docker, _dep_sshpubkeys_py2, _dep_sshpubkeys_py3],
|
||||||
|
|
@ -145,11 +153,7 @@ setup(
|
||||||
author="Steve Pulec",
|
author="Steve Pulec",
|
||||||
author_email="spulec@gmail.com",
|
author_email="spulec@gmail.com",
|
||||||
url="https://github.com/spulec/moto",
|
url="https://github.com/spulec/moto",
|
||||||
entry_points={
|
entry_points={"console_scripts": ["moto_server = moto.server:main",],},
|
||||||
"console_scripts": [
|
|
||||||
"moto_server = moto.server:main",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
packages=find_packages(exclude=("tests", "tests.*")),
|
packages=find_packages(exclude=("tests", "tests.*")),
|
||||||
install_requires=install_requires,
|
install_requires=install_requires,
|
||||||
extras_require=extras_require,
|
extras_require=extras_require,
|
||||||
|
|
@ -167,7 +171,5 @@ setup(
|
||||||
"License :: OSI Approved :: Apache Software License",
|
"License :: OSI Approved :: Apache Software License",
|
||||||
"Topic :: Software Development :: Testing",
|
"Topic :: Software Development :: Testing",
|
||||||
],
|
],
|
||||||
project_urls={
|
project_urls={"Documentation": "http://docs.getmoto.org/en/latest/",},
|
||||||
"Documentation": "http://docs.getmoto.org/en/latest/",
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -538,6 +538,10 @@ def test_certs():
|
||||||
cert_desc.should.have.key("certificateArn").which.should_not.be.none
|
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("certificateId").which.should_not.be.none
|
||||||
cert_desc.should.have.key("certificatePem").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_desc.should.have.key("status").which.should.equal("ACTIVE")
|
||||||
cert_pem = cert_desc["certificatePem"]
|
cert_pem = cert_desc["certificatePem"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ def migrate_version(target_file, new_version):
|
||||||
regex = r"['\"](.*)['\"]"
|
regex = r"['\"](.*)['\"]"
|
||||||
migrate_source_attribute(
|
migrate_source_attribute(
|
||||||
"__version__",
|
"__version__",
|
||||||
"\"{new_version}\"".format(new_version=new_version),
|
'"{new_version}"'.format(new_version=new_version),
|
||||||
target_file,
|
target_file,
|
||||||
regex,
|
regex,
|
||||||
)
|
)
|
||||||
|
|
@ -84,7 +84,9 @@ def prerelease_version():
|
||||||
assert (
|
assert (
|
||||||
initpy_ver > ver
|
initpy_ver > ver
|
||||||
), "the moto/__init__.py version should be newer than the last tagged release."
|
), "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):
|
def read(*parts):
|
||||||
|
|
@ -116,7 +118,9 @@ def increase_patch_version(old_version):
|
||||||
:param old_version: 2.0.1
|
:param old_version: 2.0.1
|
||||||
:return: 2.0.2.dev
|
: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():
|
def release_version_correct():
|
||||||
|
|
@ -154,5 +158,7 @@ if __name__ == "__main__":
|
||||||
initpy = os.path.abspath("moto/__init__.py")
|
initpy = os.path.abspath("moto/__init__.py")
|
||||||
migrate_version(initpy, new_version)
|
migrate_version(initpy, new_version)
|
||||||
else:
|
else:
|
||||||
print("Invalid usage. Supply 0 or 1 arguments. "
|
print(
|
||||||
"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)")
|
"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)"
|
||||||
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue