Browse Source

Add a validator command

Gu1 11 years ago
parent
commit
4a052ea9d2
2 changed files with 21 additions and 10 deletions
  1. 3 10
      ffdnispdb/schemavalidator.py
  2. 18 0
      validator.py

+ 3 - 10
ffdnispdb/schemavalidator.py

@@ -4,7 +4,7 @@ from jsonschema import Draft4Validator, RefResolver, draft4_format_checker
 from jsonschema.exceptions import RefResolutionError, SchemaError, ValidationError
 import json
 import os.path
-from urlparse import urlparse
+from urlparse import urlsplit
 
 
 class MyRefResolver(RefResolver):
@@ -40,7 +40,7 @@ resources={
     'http://json-schema.org/geojson/crs.json#': load_schema('geojson/crs'),
 }
 
-def validate_diyisp(jdict):
+def validate_isp(jdict):
     """
     Validate a json-object against the diyisp json-schema
     """
@@ -62,7 +62,7 @@ def validate_diyisp(jdict):
 
     def is_valid_url(u):
         try:
-            pu=urlparse(u)
+            pu=urlsplit(u)
         except:
             return False
         if pu.scheme not in ('', 'http', 'https'):
@@ -93,10 +93,3 @@ def validate_diyisp(jdict):
                               validator=u'validate_url', validator_value=url)
 
 
-if __name__ == '__main__':
-    import sys
-    j=json.load(open(sys.argv[1]))
-    for e in validate_diyisp(j):
-        print e
-
-

+ 18 - 0
validator.py

@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import sys
+import json
+from ffdnispdb.schemavalidator import validate_isp
+
+if len(sys.argv) == 2:
+    j=json.load(open(sys.argv[1]))
+    errs=list(validate_isp(j))
+    if errs:
+        for e in errs:
+            print e
+    else:
+        print "All clear"
+else:
+    print "Usage: validator.py file-name.json"
+