contrib/test-schema: Make this a little more useful

* Can now supply only the Schema file name to test its loading, without
  needing to supply a test data file as well.
* Added some status output, so it's more obvious when things worked.
This commit is contained in:
Athanasius 2022-01-30 15:45:19 +00:00
parent 8de80a868a
commit df09dd064e
No known key found for this signature in database
GPG Key ID: AE3E527847057C7D

View File

@ -7,7 +7,7 @@ from jsonschema import validate as json_validate
if len(sys.argv) < 2:
print(
f"""
Usage: {sys.argv[0]} <schema file name> <test data file name>
Usage: {sys.argv[0]} <schema file name> [<test data file name>]
Note that the entire file will be loaded by simpljson.load() and should
only contain one JSON object.
@ -16,12 +16,18 @@ only contain one JSON object.
sys.exit(-1)
schema_file_name = sys.argv[1]
test_file_name = sys.argv[2]
test_file_name = None
if len(sys.argv) == 3:
test_file_name = sys.argv[2]
with open(test_file_name, 'r') as test_file:
test_event = simplejson.load(test_file)
with open(schema_file_name, 'r') as schema_file:
schema = simplejson.load(schema_file)
print('Schema file loaded OK...')
with open(schema_file_name, 'r') as schema_file:
schema = simplejson.load(schema_file)
if test_file_name is not None:
with open(test_file_name, 'r') as test_file:
test_event = simplejson.load(test_file)
json_validate(test_event, schema, format_checker=FormatChecker())
json_validate(test_event, schema, format_checker=FormatChecker())
print('Input file validated against schema OK.')