def _run_tests(self): passed = True headers = ({"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain text/html text/javascript application/json application/javascript" }) params = {} for request_pair in testable_requests: request = request_pair['class'] sys.stdout.write(".") try: #print "*** ", request.url # Setup and get the data from the HTTP server params = {} if request.auth_required: params = { "user_id": 2, "key": "TESTKEY" } if request.login_required or request.admin_required or request.dj_required: # admin login, user ID 2 currently is though. pass else: # need an anon user/key added to params here pass params = urllib.urlencode(params) conn = httplib.HTTPConnection('localhost', config.get("api_base_port")) conn.request(request_pair['method'], "/api/1/%s" % request.url, params, headers) response = conn.getresponse() if response.status == 200: web_data = json.load(response) del(web_data['api_info']) ref_file = open("api_tests/%s.json" % request.url) ref_data = json.load(ref_file) ref_file.close() if not dict_compare.print_differences(ref_data, web_data): passed = False print "JSON from server:" print json.dumps(web_data, indent=4, sort_keys=True) print else: print print "*** ERROR:", request.url, ": Response status", response.status passed = False except: print traceback.print_exc(file=sys.stdout) print "*** ERROR:", request.url, ": ", sys.exc_info()[0] passed = False print conn = httplib.HTTPConnection('localhost', config.get("api_base_port")) conn.request("GET", "/api/1/shutdown", params, headers) conn.getresponse() time.sleep(1) print print "----------------------------------------------------------------------" print "Ran %s tests." % len(testable_requests) return passed
def _run_tests(self): passed = True headers = ({ "Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain text/html text/javascript application/json application/javascript" }) params = {} for request_pair in testable_requests: request = request_pair['class'] sys.stdout.write(".") try: #print "*** ", request.url # Setup and get the data from the HTTP server params = {} if request.auth_required: params['user_id'] = 2 params['key'] = "TESTKEY" if request.login_required or request.admin_required or request.dj_required: # admin login, user ID 2 currently is though. pass else: # need an anon user/key added to params here pass params['sid'] = 1 params = urllib.urlencode(params) conn = httplib.HTTPConnection('localhost', config.get("api_base_port")) conn.request(request_pair['method'], "/api/%s" % request.url, params, headers) response = conn.getresponse() response_pass = True if response.status == 200: web_data = json.load(response) del (web_data['api_info']) ref_file = open("api_tests/%s.json" % request.url) ref_data = json.load(ref_file) ref_file.close() if not dict_compare.print_differences(ref_data, web_data): response_pass = False print "JSON from server:" print json.dumps(web_data, indent=4, sort_keys=True) print else: response_pass = False if not response_pass: passed = False print print "*** ERROR:", request.url, ": Response status", response.status except: print traceback.print_exc(file=sys.stdout) print "*** ERROR:", request.url, ": ", sys.exc_info()[0] passed = False print conn = httplib.HTTPConnection('localhost', config.get("api_base_port")) conn.request("GET", "/api/shutdown", params, headers) conn.getresponse() time.sleep(3) print print "----------------------------------------------------------------------" print "Ran %s tests." % len(testable_requests) return passed