1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
import json
keks = {
"aws": {
"template": {
"provider": "aws",
"key": "example arn",
"region": "example region",
"endpoint": "example.com"
},
"optional": [ "endpoint" ],
"endpoints": [ "endpoint" ]
},
"local": {
"template": {
"provider": "local"
}
},
"azure": {
"template": {
"provider": "azure",
"keyVaultEndpoint": "keyvault.example.com",
"keyName": "example keyName",
"keyVersion": "example keyVersion"
},
"optional": [ "keyVersion" ],
"endpoints": [ "keyVaultEndpoint" ]
},
"gcp": {
"template": {
"provider": "gcp",
"projectId": "example projectId",
"location": "example location",
"keyRing": "example keyRing",
"keyName": "example keyName",
"keyVersion": "example keyVersion",
"endpoint": "example.com"
},
"optional": [ "endpoint", "keyVersion" ],
"endpoints": [ "endpoint" ]
}
}
testcases = []
def add_testcase (input, expect):
testcases.append ({
"input": input,
"expect": expect
})
for name, kek in keks.items():
# Add successful case.
add_testcase (kek["template"], "ok")
# Test that endpoints are validated.
if "endpoints" in kek:
testcase = kek["template"].copy()
for endpoint in kek["endpoints"]:
testcase[endpoint] = "invalid endpoint"
add_testcase (testcase, "invalid endpoint")
# Test with all optional fields removed.
if "optional" in kek:
testcase = {}
for k,v in kek["template"].items():
if k not in kek["optional"]:
testcase[k] = v
add_testcase (testcase, "ok")
print (json.dumps(testcases, indent=4))
|