forked from takahi-i/redpen-ci-sample
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathredpen.py
39 lines (31 loc) · 1.28 KB
/
redpen.py
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
import urllib2
import json
import argparse
import sys
DEFAULT_URL = "http://redpen.herokuapp.com/rest/document/validate/json"
class RedPen:
def __init__(self, input_file, conf_file):
self.doc = open(input_file).read()
self.conf = json.loads(open(conf_file).read())
self.conf["document"] = self.doc
self.url = DEFAULT_URL
def set_url(url):
self.url = url
def validate(self):
req = urllib2.Request(self.url, data=json.dumps(self.conf), headers={'Content-Type':'application/json'})
return json.loads(urllib2.urlopen(req).read())
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--doc', action="store", default="sampledoc-en.txt", dest="doc_file")
parser.add_argument('--conf', action="store", default="redpen-conf.json", dest="conf_file")
parser.add_argument('--limit', action="store", default=1, dest="limit")
parse_results = parser.parse_args()
redpen = RedPen(parse_results.doc_file, parse_results.conf_file)
result = redpen.validate()
if parse_results.limit < len(result["errors"]):
print "Found errors more than specified limit..."
print len(result["errors"])
sys.exit(1)
else:
print "Succeeded validation"
sys.exit(0)