#!/usr/bin/env python import sys, string, urllib import requests from requests.packages.urllib3.util.retry import Retry from requests.adapters import HTTPAdapter import optparse session = requests.Session() adapter = HTTPAdapter( max_retries=Retry( connect=5, status=5, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504] ) ) session.mount('http://', adapter) session.mount('https://', adapter) def test_time(target, test_name, runtime): r = session.post(target + "/record/%s/%f" % (urllib.quote(test_name, safe=""), runtime)) print r.text.encode('utf-8') assert r.status_code == 204 def test_sched(target, test_run, shard_count, shard_id): tests = {'tests': string.split(sys.stdin.read())} r = session.post(target + "/schedule/%s/%d/%d" % (test_run, shard_count, shard_id), json=tests) assert r.status_code == 200 result = r.json() for test in sorted(result['tests']): print test.encode('utf-8') def usage(): print "%s (--target=...) " % sys.argv[0] print " time " print " sched " def main(): parser = optparse.OptionParser() parser.add_option('--target', default="http://positive-cocoa-90213.appspot.com") options, args = parser.parse_args() if len(args) < 3: usage() sys.exit(1) if args[0] == "time": test_time(options.target, args[1], float(args[2])) elif args[0] == "sched": test_sched(options.target, args[1], int(args[2]), int(args[3])) else: usage() if __name__ == '__main__': main()