openapi2jsonschema.py now correctly fails if no FILE is passed (#244)

* openapi2jsonschema.py now correctly fails if no FILE is passed
* Update acceptance tests
This commit is contained in:
Yann Hamon 2023-11-18 18:08:18 +01:00 committed by GitHub
parent b7d7b4d0dc
commit 6ae8c45bc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 49 deletions

View file

@ -36,7 +36,7 @@ resetCacheFolder() {
} }
@test "Pass when parsing a valid Kubernetes config JSON file" { @test "Pass when parsing a valid Kubernetes config JSON file" {
run bin/kubeconform -kubernetes-version 1.17.1 -summary fixtures/valid.json run bin/kubeconform -kubernetes-version 1.20.0 -summary fixtures/valid.json
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
[ "$output" = "Summary: 1 resource found in 1 file - Valid: 1, Invalid: 0, Errors: 0, Skipped: 0" ] [ "$output" = "Summary: 1 resource found in 1 file - Valid: 1, Invalid: 0, Errors: 0, Skipped: 0" ]
} }
@ -134,17 +134,17 @@ resetCacheFolder() {
} }
@test "Fail when parsing a config with additional properties and strict set" { @test "Fail when parsing a config with additional properties and strict set" {
run bin/kubeconform -strict -kubernetes-version 1.16.0 fixtures/extra_property.yaml run bin/kubeconform -strict -kubernetes-version 1.20.0 fixtures/extra_property.yaml
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
} }
@test "Fail when parsing a config with duplicate properties and strict set" { @test "Fail when parsing a config with duplicate properties and strict set" {
run bin/kubeconform -strict -kubernetes-version 1.16.0 fixtures/duplicate_property.yaml run bin/kubeconform -strict -kubernetes-version 1.20.0 fixtures/duplicate_property.yaml
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
} }
@test "Pass when parsing a config with duplicate properties and strict NOT set" { @test "Pass when parsing a config with duplicate properties and strict NOT set" {
run bin/kubeconform -kubernetes-version 1.16.0 fixtures/duplicate_property.yaml run bin/kubeconform -kubernetes-version 1.20.0 fixtures/duplicate_property.yaml
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }

View file

@ -1,46 +1,34 @@
{ {
"apiVersion": "apps/v1beta1", "apiVersion": "v1",
"kind": "Deployment", "kind": "ReplicationController",
"metadata": { "metadata": {
"name": "nginx-deployment", "name": "bob"
"namespace": "default" },
}, "spec": {
"spec": { "replicas": 2,
"replicas": 2, "selector": {
"template": { "app": "nginx"
"spec": { },
"affinity": { }, "template": {
"containers": [ "metadata": {
{ "name": "nginx",
"args": [ ], "labels": {
"command": [ ], "app": "nginx"
"env": [ ], }
"envFrom": [ ], },
"image": "nginx:1.7.9", "spec": {
"lifecycle": { }, "containers": [
"livenessProbe": { }, {
"name": "nginx", "name": "nginx",
"ports": [ "image": "nginx",
{ "ports": [
"containerPort": 80, {
"name": "http" "containerPort": 80
} }
], ]
"readinessProbe": { }, }
"resources": { }, ]
"securityContext": { },
"volumeMounts": [ ]
}
],
"hostMappings": [ ],
"imagePullSecrets": [ ],
"initContainers": [ ],
"nodeSelector": { },
"securityContext": { },
"tolerations": [ ],
"volumes": [ ]
}
} }
}, }
"status": { } }
} }

View file

@ -72,3 +72,10 @@ setup() {
run diff prometheus_v1.json ./fixtures/prometheus_v1-denyRootAdditionalProperties.json run diff prometheus_v1.json ./fixtures/prometheus_v1-denyRootAdditionalProperties.json
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
@test "Should output an error if no file is passed" {
run ./openapi2jsonschema.py
[ "$status" -eq 1 ]
[ "${lines[0]}" == 'Missing FILE parameter.' ]
[ "${lines[1]}" == 'Usage: ./openapi2jsonschema.py [FILE]' ]
}

View file

@ -122,8 +122,8 @@ def construct_value(load, node):
if __name__ == "__main__": if __name__ == "__main__":
if len(sys.argv) == 0: if len(sys.argv) < 2:
print("missing file") print('Missing FILE parameter.\nUsage: %s [FILE]' % sys.argv[0])
exit(1) exit(1)
for crdFile in sys.argv[1:]: for crdFile in sys.argv[1:]: