def run(self): """ Ask for the sum of two random numbers and check the result """ computation_times = [] response_times = [] a = int(random() * self.MAXRAND) b = int(random() * self.MAXRAND) code = json.dumps("print %d+%d" % (a, b)) s = Session(self.BASE_URL) request = s.prepare_execution_request(code) sequence = 0 with timing(computation_times): with timing(response_times): s.send_execution_request(request) start_time = time() done = False while not done: if time() - start_time > self.TIMEOUT: raise Exception("TIMEOUT") sleep(self.POLL_INTERVAL) with timing(response_times): r = s.output_poll(sequence) if len(r) == 0 or "content" not in r: continue for m in r["content"]: sequence += 1 if m["msg_type"] == "stream" and m["content"]["name"] == "stdout": ans = int(m["content"]["data"]) if ans != a + b: print "COMPUTATION NOT CORRECT" raise ValueError( "Computation not correct: %s+%s!=%s, off by %s " % (a, b, ans, ans - a - b) ) else: done = True break self.custom_timers["Computation"] = computation_times self.custom_timers["Response"] = response_times
def run(self): """ Upload a file, change it, and then download it again """ computation_times = [] response_times = [] s = Session(self.BASE_URL) request = s.prepare_execution_request(code, files=['test.txt']) sequence = 0 with timing(computation_times): with timing(response_times): s.send_execution_request(request) done = False while not done: sleep(self.POLL_INTERVAL) with timing(response_times): r = s.output_poll(sequence) if len(r) == 0 or 'content' not in r: continue for m in r['content']: sequence += 1 if (m['msg_type'] == "extension" and m['content']['msg_type'] == "files"): returned_file = m['content']['content']['files'][0] if returned_file != 'test.txt': print("RETURNED FILENAME NOT CORRECT") raise ValueError( "Returned filename not correct: %s" % returned_file) with timing(response_times): f = s.get_file(returned_file) if f != FILE_RESULT_CONTENTS: print("RETURNED FILE CONTENTS NOT CORRECT") raise ValueError( "Returned file contents not correct: %s" % f) # if we've made it this far, we're done done = True break self.custom_timers['Computation'] = computation_times self.custom_timers['Response'] = response_times
def run(self): """ Ask for the sum of two random numbers and check the result """ computation_times = [] response_times = [] a = int(random() * self.MAXRAND) b = int(random() * self.MAXRAND) code = json.dumps('print(%d+%d)' % (a, b)) s = Session(self.BASE_URL) request = s.prepare_execution_request(code) sequence = 0 with timing(computation_times): with timing(response_times): s.send_execution_request(request) start_time = time() done = False while not done: if time() - start_time > self.TIMEOUT: raise Exception("TIMEOUT") sleep(self.POLL_INTERVAL) with timing(response_times): r = s.output_poll(sequence) if len(r) == 0 or 'content' not in r: continue for m in r['content']: sequence += 1 if (m['msg_type'] == "stream" and m['content']['name'] == "stdout"): ans = int(m['content']['data']) if ans != a + b: print("COMPUTATION NOT CORRECT") raise ValueError( "Computation not correct: %s+%s!=%s, off by %s " % (a, b, ans, ans - a - b)) else: done = True break self.custom_timers['Computation'] = computation_times self.custom_timers['Response'] = response_times
def run(self): """ Upload a file, change it, and then download it again """ computation_times=[] response_times=[] s=Session(self.BASE_URL) request=s.prepare_execution_request(code,files=['test.txt']) sequence=0 with timing(computation_times): with timing(response_times): s.send_execution_request(request) done=False while not done: sleep(self.POLL_INTERVAL) with timing(response_times): r=s.output_poll(sequence) if len(r)==0 or 'content' not in r: continue for m in r['content']: sequence+=1 if (m['msg_type']=="extension" and m['content']['msg_type']=="files"): returned_file=m['content']['content']['files'][0] if returned_file!='test.txt': print "RETURNED FILENAME NOT CORRECT" raise ValueError("Returned filename not correct: %s"%returned_file) with timing(response_times): f=s.get_file(returned_file) if f!=FILE_RESULT_CONTENTS: print "RETURNED FILE CONTENTS NOT CORRECT" raise ValueError("Returned file contents not correct: %s"%f) # if we've made it this far, we're done done=True break self.custom_timers['Computation']=computation_times self.custom_timers['Response']=response_times