Exemple #1
0
	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
Exemple #2
0
    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