def test_find_related_test_case(self): # simulate test_case creation test_case = TestCase(contract_hash='f3da12622e9bb2b3f367a650a81fd8c70b2eb495', transaction_hash='c33fd08be47a978778f1c7098804d8339ce6ec4002e8e7de580552785dca80f5', event_type='SmartContract.Runtime.Log', expected_payload_type='String', expected_payload_value='Contract was called', active= True ) self.test_session.add(test_case) self.test_session.commit() # simulate receiving a sc_event sc_event = self.generic_sc_event sc_event['tx_hash'] = 'c33fd08be47a978778f1c7098804d8339ce6ec4002e8e7de580552785dca80f5' sc_event['contract_hash'] = 'f3da12622e9bb2b3f367a650a81fd8c70b2eb495' sc_event['event_type'] = 'SmartContract.Runtime.Log' sc_event['event_payload']['type'] = 'String' sc_event['event_payload']['value'] = 'Contract was called' found_test_case = self.test_session.query(TestCase). \ filter_by(contract_hash=sc_event['contract_hash'], transaction_hash=sc_event['tx_hash'], event_type=sc_event['event_type'], active=True).first() self.assertEqual(test_case, found_test_case)
def add_case(): if not session.get('logged_in'): abort(401) tc = TestCase( request.form['title'], TestSuite.query.filter(TestSuite.id == request.form['ts_id']).first()) db_session.add(tc) db_session.commit() flash('New entry was succesfully posted') return redirect(url_for('show_cases', ts_id=request.form['ts_id']))
def post(self,request): project_id = int(request.COOKIES["p_id"]) # 操作外键的的时候,必须要先实例化外键对应的mode if project_id != '': belong_project_id = ProjectInfo.objects.get(id=int(project_id)) case_info = TestCase() name = request.POST.get("name", "") parent_area = int(request.POST.get("pId", "")) type = request.POST.get("type","") designer = request.user.username if type == 'ml'and parent_area > 0: # print(parent_area,type,name) case_info.name = name case_info.type = type case_info.belong_project = belong_project_id case_info.parent_id = parent_area case_info.designer = designer case_info.save() id = case_info.id # print(case_info.id,case_info.name,case_info.parent_area_id) return JsonResponse({"msg": "新增节点成功","code": 200,'id': id}) elif type == 'ml'and parent_area == 0: case_info.name = name case_info.type = type case_info.belong_project = belong_project_id case_info.designer = designer case_info.save() id = case_info.id # print(case_info.id,case_info.name,case_info.parent_area_id) return JsonResponse({"msg": "新增根节点成功", "code": 200, 'id': id}) elif type == 'yl': jb = request.POST.get("jb", "") precondition = request.POST.get("precondition", "") operation = request.POST.get("operation", "") expect_result = request.POST.get("expect_result", "") case_desc = request.POST.get("case_desc", "") case_info.belong_project = belong_project_id case_info.name = name case_info.parent_id = parent_area case_info.type = type case_info.jb = jb case_info.precondition = precondition case_info.operation = operation case_info.expect_result = expect_result case_info.case_desc = case_desc case_info.designer = designer case_info.save() return JsonResponse({"msg": "新增用例成功", "code": 200}) else: return JsonResponse({"msg": "p_id不能为空", "code": 500})
def test_test_case_creation(self): # directly create test into the database test_case = TestCase(contract_hash='f3da12622e9bb2b3f367a650a81fd8c70b2eb495', transaction_hash='c33fd08be47a978778f1c7098804d8339ce6ec4002e8e7de580552785dca80f5', event_type='SmartContract.Runtime.Log', expected_payload_type='String', expected_payload_value='Contract was called', active= True ) self.test_session.add(test_case) self.test_session.commit() t_case = self.test_session.query(TestCase).filter_by( contract_hash='f3da12622e9bb2b3f367a650a81fd8c70b2eb495', transaction_hash='c33fd08be47a978778f1c7098804d8339ce6ec4002e8e7de580552785dca80f5', event_type='SmartContract.Runtime.Log').first() self.assertEqual(test_case, t_case)
def writeData(request, file_path): project_name = readRowsData(file_path)[0][1] for test_case in readRowsData(file_path)[2:]: TestCase( project_name=project_name, number=test_case[0], function_model=test_case[1], title=test_case[2], precondition=test_case[3], procedure=test_case[4], ex_result=test_case[5], #pr_result=test_case[6], #test_result=test_case[7], grade=test_case[8], create_user=request.session.get("username"), modify_user=request.session.get("username")).save()
def test_success_should_eql_true(self): # simulate test_case creation t_case = TestCase(contract_hash='f3da12622e9bb2b3f367a650a81fd8c70b2eb495', transaction_hash='c33fd08be47a978778f1c7098804d8339ce6ec4002e8e7de580552785dca80f5', event_type='SmartContract.Runtime.Log', expected_payload_type='String', expected_payload_value='Contract was called', active= True ) self.test_session.add(t_case) self.test_session.commit() # simulate receiving a sc_event sc_event = self.generic_sc_event sc_event['tx_hash'] = 'c33fd08be47a978778f1c7098804d8339ce6ec4002e8e7de580552785dca80f5' sc_event['contract_hash'] = 'f3da12622e9bb2b3f367a650a81fd8c70b2eb495' sc_event['event_type'] = 'SmartContract.Runtime.Log' sc_event['event_payload']['type'] = 'String' sc_event['event_payload']['value'] = 'Contract was called' # simulates handle event function from tasks found_test_case = self.test_session.query(TestCase). \ filter_by(contract_hash=sc_event['contract_hash'], transaction_hash=sc_event['tx_hash'], event_type=sc_event['event_type'], active=True).first() # simulates evaluate function from tasks test_case = self.test_session.query(TestCase).get(found_test_case.id) if not test_case.success: sc_event_payload = sc_event['event_payload'] if sc_event['event_type'] == test_case.event_type.value and sc_event_payload['type'] == test_case.\ expected_payload_type.value: if str(sc_event_payload['value']) == test_case.expected_payload_value: test_case.sc_event = json.dumps(sc_event) test_case.active = False test_case.success = True else: test_case.sc_event = json.dumps(sc_event) test_case.active = False test_case.success = False self.assertEqual(test_case.active, False) self.assertEqual(test_case.success, True)
def createTestCase(request): if request.method == 'POST': form = CreateTestCaseForm(request.POST) # 验证数据的合法性 if form.is_valid(): # 如果提交数据合法,调用表单的 save 方法将数据保存到数据库 TestCase(project_name=request.POST["project_name"], number=request.POST["number"], function_model=request.POST["function_model"], title=request.POST["title"], precondition=request.POST["precondition"], procedure=request.POST["procedure"], grade=request.POST["grade"], test_result="未测试", create_user=request.session.get("username"), modify_user=request.session.get("username")).save() # 创建成功,跳转回首页 return HttpResponseRedirect('/testadmin/testCase') else: form = CreateDatabaseInfoForm() return render(request, "testadmin/create_testcase.html", { 'form': form, 'post': request.POST })