haha před 3 roky
rodič
revize
b3759ed358
1 změnil soubory, kde provedl 42 přidání a 0 odebrání
  1. 42 0
      web/app.py

+ 42 - 0
web/app.py

@@ -17,6 +17,48 @@ def hello_world():
     return 'Hello World!'
 
 
+@app.route('/api/judgeTest', methods=['POST'])
+def judge_test():
+    start = time.time()
+    requestData = request.get_data(as_text=True)
+    data = json.loads(requestData)
+    code = data['code']
+    language = data['language']
+    cid = str(data['commitId'])
+    time_limit = int(data['timeLimit'])
+    memory_limit = int(data['memoryLimit'])
+    input_list = data['inputList']
+    output_list = data['outputList']
+
+    app_path = os.getcwd()
+    app.logger.info(app_path)
+
+    dir_name = 'commit-' + cid
+    if os.path.exists(dir_name):
+        shutil.rmtree(dir_name)
+    os.mkdir(dir_name)
+    os.chdir(app_path+'/'+dir_name)
+    app.logger.info(os.getcwd())
+
+    if len(input_list) != len(output_list):
+        return {"result_list": [{'result': "System Error"}],
+                'message': 'test data incompleted'}
+    td_total = len(input_list)
+    save_test_cases(input_list, output_list, td_total)
+    src_file = save_code(language, code)
+    rst = judgement.judge(src_file, 'testcases', td_total, time_limit, memory_limit, language)
+
+    # save_test_cases_by_cid(cid, input_list, output_list, td_total)
+    # src_file = save_code_by_cid(cid, language, code)
+    # rst = judgement.judge_by_cid(src_file, 'testcases-'+cid, td_total, time_limit, memory_limit, language,cid)
+    os.remove(src_file)
+    shutil.rmtree('testcases')
+    os.chdir(app_path)
+    app.logger.info(os.getcwd())
+    app.logger.info(time.time() - start)
+    return rst
+
+
 '''
 code: string 源代码
 language: string 编程语言{cpp,java,c,python}