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 70
|
# See bindings/python for the python jsonparser module
import jsonparser
import json
import glob
passed = "\033[92mPassed\033[0m"
failed = "\033[91mFailed\033[0m"
# Strict JSON tests
#
for i, test in enumerate(
map(lambda file: open(file).read(), sorted(glob.glob('valid*.json')))):
try:
jsonparser.decode(test)
except jsonparser.JSONException as error:
print ('valid/%d : Failed with error: %s' % (i, error))
continue
py_decoded = json.loads(test)
py_reencoded = json.dumps(py_decoded)
try:
reencoded = jsonparser.decode(py_reencoded)
except jsonparser.JSONException as error:
print ('valid/%d : Failed on re-encoded version with error: %s' % (i, error))
continue
if reencoded != py_decoded:
print ('valid/%d : %s:\n\n%s\n\nbecame\n\n%s\n' % (i, failed, test, reencoded))
else:
print ('valid/%d : %s' % (i, passed))
for i, test in enumerate(
map(lambda file: open(file).read(), sorted(glob.glob('invalid*.json')))):
try:
jsonparser.decode(test)
except jsonparser.JSONException as error:
print ('invalid/%d : %s: %s' % (i, passed, error))
continue
print ('invalid/%d : %s (parsing succeeded and shouldn\'t have)' % (i, failed))
# Extension tests
#
for i, test in enumerate(
map(lambda file: open(file).read(), sorted(glob.glob('ext-valid*.json')))):
try:
decoded = jsonparser.decode(test)
print ('ext-valid/%d : %s: %s' % (i, passed, json.dumps(decoded)))
except jsonparser.JSONException as error:
print ('ext-valid/%d : Failed with error: %s' % (i, error))
continue
for i, test in enumerate(
map(lambda file: open(file).read(), sorted(glob.glob('ext-invalid*.json')))):
try:
jsonparser.decode(test)
except jsonparser.JSONException as error:
print ('ext-invalid/%d : %s: %s' % (i, passed, error))
continue
print ('ext-invalid/%d : %s (parsing succeeded and shouldn\'t have)' % (i, failed))
|