def create_project(): data = request.get_json() or {} project_name = data.get('project_name') owner_name = data.get('owner_name') if not project_name or not owner_name: return bad_request('must include project name or owner_name') if Project.query.filter_by(project_name=project_name).first(): return bad_request('please use a different project name') if not User.query.filter_by(username=owner_name).first(): return bad_request('owner does not exist') project = Project(project_name=project_name, owner_name=owner_name) db.session.add(project) session_commit() project = Project.query.filter_by(project_name=project_name).first() if not project: return bad_request('create project fail') # project.add_user(g.current_user) # admins = User.admins_list() # if admins: # for admin in admins: # project.add_user(admin) # session_commit() data = project.to_dict() response = trueReturn(data, 'create project successfully') # response.status_code = 201 return response
def project_link_user(): data = request.get_json() or {} project_id = data.get('project_id') user_id_list = data.get('user_id_list') follow_type = data.get('follow_type') # follow = 1, unfollow = 2 if not follow_type or follow_type not in ['1', '2']: return bad_request('follow_type error') if not project_id: return bad_request('must include project id') project = Project.query.filter_by(id=project_id).first() if not project: return bad_request('project does not exist') for user_id in user_id_list: # print(username) # type(username) user = User.query.filter_by(id=user_id).first() if not user: return bad_request('user %s does not exist' % user_id) if follow_type == '1': if user in project.users.all(): return bad_request('user %s is already in project %s' % (user.username, project.project_name)) if user.username == project.owner_name: return bad_request( 'user %s is the owner of this project,not need to add' % user.username) project.follow(user) if follow_type == '2': if user not in project.users.all(): return bad_request('user %s is not in project %s' % (user.username, project.project_name)) if user.username == project.owner_name: return bad_request( 'user %s is the owner of this project,cannot remove it' % user.username) project.unfollow(user) session_commit() data = project.to_dict() if follow_type == '1': response = trueReturn( data, 'add users into project %s success' % project.project_name) return response if follow_type == '2': response = trueReturn( data, 'remove users from project %s success' % project.project_name) return response
def register(): data = request.get_json() or {} if 'username' not in data or 'email' not in data or 'password' not in data: return bad_request('must include username, email and password fields') if User.query.filter_by(username=data['username']).first(): return bad_request('please use a different username') if User.query.filter_by(email=data['email']).first(): return bad_request('please use a different email address') user = User() user.from_dict(data) user.add() session_commit() if user.id: data = user.to_dict() response = trueReturn(data, '用户注册成功') # response.status_code = 201 return response else: return bad_request('用户注册失败')
def update_project(): data = request.get_json() or {} origin_project_id = data.get('origin_project_id') origin_owner_name = data.get('origin_owner_name') new_owner_name = data.get('owner_name') new_project_name = data.get('project_name') origin_user = User.query.filter_by(username=origin_owner_name).first() if not origin_user: return bad_request('owner does not exist') origin_project = Project.query.filter_by(id=origin_project_id).first() if not origin_project: return bad_request('original project %s does not exist' % origin_project_id) # print(g.current_user) # print(origin_user) if origin_user != g.current_user: return bad_request( 'you are not the owner of %s project, cannot update it' % origin_project.project_name) if new_owner_name and new_owner_name != origin_owner_name and \ not User.query.filter_by(username=new_owner_name).first(): return bad_request('user %s not registers yet' % new_owner_name) if new_project_name and new_project_name != origin_project.project_name and \ Project.query.filter_by(project_name=new_project_name).first(): return bad_request('please use a different project name') origin_project.from_dict(data) db.session.add(origin_project) session_commit() project = Project.query.filter_by(project_name=new_project_name).first() if not project: return bad_request('update project fail') data = project.to_dict() response = trueReturn(data, 'update project successfully') return response
def delete_project(): data = request.get_json() or {} project_id = data.get('project_id') if not project_id: return bad_request('must include project id') # project = g.current_user.projects.filter_by(project_name=project_name).first() project = Project.query.filter_by(id=project_id).first() project_name = project.project_name if not project: return bad_request('%s project does not exist' % project_name) if project.owner_name != g.current_user.username: return bad_request( 'you are not owner of %s project, cannot delete it' % project_name) if project.users.first(): return bad_request('Cannot delete it as there are users in %s' % project_name) if project.modules.first(): return bad_request('Cannot delete it as there are modules in %s' % project_name) if project.envs.first(): return bad_request('Cannot delete it as there are envs in %s' % project_name) db.session.delete(project) session_commit() if not Project.query.filter_by(project_name=project_name).first(): response = trueReturn(message='delete project successfully') # response.status_code = 201 return response else: return bad_request('delete project fail')
def tests_batch_run(): data = request.get_json() or {} project_id = data.get('project_id') test_id_items = data.get('test_id_items') if not len(test_id_items): return bad_request('no testcases selected') project = Project.query.get_or_404(project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) report_id_items = [] for test_id in test_id_items: test_id = int(test_id) testcase = TestCase.query.get_or_404(test_id) if testcase not in project.testcases.all(): return bad_request('no testcase id %d in project %s' % (test_id, project.project_name)) name = testcase.name env = None if testcase.env_id: env = Env.query.get_or_404(testcase.env_id) config = { 'name': name, 'request': { 'base_url': env.env_host if env else '', }, 'variables': json.loads(env.env_var) if env else [] # [{"user_agent": "iOS/10.3"}, {"user_agent": "iOS/10.3"}] } teststeps = json.loads(testcase.teststeps) payload = [] for teststep in teststeps: if teststep['step_id']: step_id = int(teststep['step_id']) teststep = TestStep.query.get_or_404(step_id) else: return bad_request('please add test steps') api = Api.query.get_or_404(teststep.api_id) if teststep.env_id: env = Env.query.get(teststep.env_id) else: env = None data = { 'name': teststep.name, 'req_method': api.req_method, 'req_temp_host': env.env_host if env.env_host else '', 'req_relate_url': api.req_relate_url, 'req_data_type': api.req_data_type, 'req_headers': teststep.req_headers if teststep.req_headers else api.req_headers, # '{"Content-Type": "application/json"}' 'req_cookies': teststep.req_cookies if teststep.req_cookies else api.req_cookies, # '{"token": "application/json"}' 'req_params': teststep.req_params if teststep.req_params else api.req_params, # '{"token": "application/json"}' 'req_body': teststep.req_body if teststep.req_body else api.req_body, # '{"type": "ios"}' 'variables': env.env_var if env.env_var else '[]', # [{"user_agent": "iOS/10.3"}, ] 'extracts': env.extracts if env.extracts else '[]', # [{"user_agent": "iOS/10.3"}, {"user_agent": "iOS/10.3"}] 'asserts': env.asserts if env.asserts else '[]' # [{'eq': ['status_code', 200]}] } payload.append(data) test = RunJob(payload, config) result = test.job() data = { 'summary': result, 'test_result': result['success'], 'testcase_id': test_id, 'name': name } report = Report() report.from_dict(data) db.session.add(report) session_commit() # tester = Runner(payload, config) # result = tester.run() # result = json.loads(result) # # data = { # 'summary': result, # 'test_result': result['success'], # 'testcase_id': test_id, # 'name': name # } # # report = Report() # report.from_dict(data) # db.session.add(report) # session_commit() report_id_items.append(report.id) response = trueReturn({'report_id_items': report_id_items}, 'tests run complete all, please check reports') return response
def operate_testcase(): ''' operate_type : '1' = 增,改 '2' = 查, '3' = 删, '4' = tryRun, '5' = batch_Run ''' data = request.get_json() or {} project_id = data.get('project_id') api_id = data.get('api_id') env_id = data.get('env_id') module_id = data.get('module_id') testcase_id = data.get('testcase_id') testcase_name = data.get('name') operate_type = data.get('operate_type') if not operate_type: return bad_request('must include operate_type') # 增,改 if operate_type == '1': project = Project.query.get_or_404(project_id) api = Api.query.get_or_404(api_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) if api not in project.apis.all(): return bad_request('no api %s in project %s' % (api.name, project.project_name)) if not testcase_id: if not testcase_name: return bad_request('please input testcase name') if TestCase.query.filter_by(name=testcase_name).first(): return bad_request('Testcase %s already exists' % testcase_name) testcase = TestCase() testcase.from_dict(data) db.session.add(testcase) session_commit() data = testcase.to_dict() response = trueReturn(data, 'create testcase success') return response if testcase_id: testcase = TestCase.query.get_or_404(testcase_id) if Project.query.get(testcase.project_id) not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') if testcase_name and testcase_name != testcase.name \ and TestCase.query.filter_by(name=testcase_name).first(): return bad_request('please use a different testcase name') testcase.from_dict(data) db.session.add(testcase) session_commit() data = testcase.to_dict() response = trueReturn(data, 'update testcase success') return response # 查 if operate_type == '2': if testcase_id: testcase = TestCase.query.get_or_404(testcase_id) if Project.query.get(testcase.project_id) not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') return trueReturn(testcase.to_dict(), 'found it') if not project_id and not module_id: page_num = int(data.get('page_num', 1)) per_page = int(data.get('per_page', 10)) payload = TestCase.to_collection_dict(page_num, per_page) response = trueReturn(payload, 'list success') return response if module_id: module = Module.query.get_or_404(module_id) project = Project.query.get(module.project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') api_items = [] for api in module.apis.all(): testcases = [] for testcase in api.testcases.all(): testcase_data = testcase.to_dict() testcases.append(testcase_data) api_data = { 'api_id': api.id, 'testcases': testcases } api_items.append(api_data) module_data = { 'module_id': module.id, 'api_items': api_items } response = trueReturn(module_data, 'list module-api-testcases success') return response if project_id: project = Project.query.get(project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') module_items = [] for module in project.modules.all(): api_items = [] for api in module.apis.all(): testcases = [] for testcase in api.testcases.all(): testcase_data = testcase.to_dict() testcases.append(testcase_data) api_data = { 'api_id': api.id, 'testcases': testcases } api_items.append(api_data) module_data = { 'module_id': module.id, 'api_items': api_items } module_items.append(module_data) project_data = { 'project_id': project.id, 'module_items': module_items } response = trueReturn(project_data, 'list project-module-api-testcases success') return response # 删 if operate_type == '3': if not testcase_id: return bad_request('please input testcase_id') for id in testcase_id: testcase = TestCase.query.get_or_404(id) if Project.query.get(testcase.project_id) not in g.current_user.followed_projects().all(): return bad_request('cannot delete it as you are not the member of project') db.session.delete(testcase) session_commit() data = { 'testcase_id': testcase_id } response = trueReturn(data, 'delete success') return response # Run if operate_type == '4': if not data: return bad_request('no data found to run test') name = data.get('name') env = Env.query.get_or_404(env_id) config = { 'name': name, 'request': { 'base_url': env.env_host, }, 'variables': json.loads(env.env_var) # [{"user_agent": "iOS/10.3"}, {"user_agent": "iOS/10.3"}] } teststeps = json.loads(data.get('teststeps')) payload = [] for teststep in teststeps: if teststep['step_id']: step_id = int(teststep['step_id']) teststep = TestStep.query.get_or_404(step_id) else: return bad_request('please add test steps') api = Api.query.get_or_404(teststep.api_id) if teststep.env_id: env = Env.query.get(teststep.env_id) else: env = None data = { 'name': teststep.name, 'req_method': api.req_method, 'req_temp_host': env.env_host if env.env_host else '', 'req_relate_url': api.req_relate_url, 'req_data_type': api.req_data_type, 'req_headers': teststep.req_headers if teststep.req_headers else api.req_headers, # '{"Content-Type": "application/json"}' 'req_cookies': teststep.req_cookies if teststep.req_cookies else api.req_cookies, # '{"token": "application/json"}' 'req_params': teststep.req_params if teststep.req_params else api.req_params, # '{"token": "application/json"}' 'req_body': teststep.req_body if teststep.req_body else api.req_body, # '{"type": "ios"}' 'variables': env.env_var if env.env_var else '', # [{"user_agent": "iOS/10.3"}, ] 'extracts': env.extracts if env.extracts else '', # [{"user_agent": "iOS/10.3"}, {"user_agent": "iOS/10.3"}] 'asserts': env.asserts if env.asserts else '' # [{'eq': ['status_code', 200]}] } payload.append(data) # print(payload) # print(config) tester = Runner(payload, config) report = tester.run() report = json.loads(report) return trueReturn(report, 'run success')
def operate_api(): # operate_type : '1' = 增, '2' = 改, '3' = 查, '4' = 删, '5' = Run, '6' = 筛选查 data = request.get_json() or {} module_id = data.get('module_id') project_id = data.get('project_id') api_name = data.get('name') api_id = data.get('api_id') operate_type = data.get('operate_type') if not operate_type: return bad_request('must include operate_type') # if data.get('req_body'): # req_body = objlist_to_str(data.get('req_body')) # data['req_body'] = req_body # # if data.get('req_cookies'): # req_cookies = objlist_to_str(data.get('req_cookies')) # data['req_cookies'] = req_cookies # 增 if operate_type == '1': if not project_id: return bad_request('must include project_id') project = Project.query.get_or_404(project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) if not module_id: return bad_request('must include module id') module = Module.query.get_or_404(module_id) if module not in project.modules.all(): return bad_request('no module %s in project %s' % (module.module_name, project.project_name)) if not api_name: return bad_request('must include api name') if Api.query.filter_by(name=api_name).first(): return bad_request('%s already in project %s' % (api_name, project.project_name)) api = Api() api.from_dict(data) db.session.add(api) session_commit() data = api.to_dict() response = trueReturn(data, 'create Api success') return response # 改 if operate_type == '2': if not api_id: return bad_request('must include api_id') api = Api.query.get_or_404(api_id) if Project.query.get(api.project_id ) not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') if project_id and project_id != api.project_id: project = Project.query.get_or_404(project_id) if module_id and module_id != api.module_id: module = Module.query.get_or_404(module_id) if module not in project.modules.all(): return bad_request( 'module %s is not in project %s' % (module.module_name, project.project_name)) if api_name and api_name != api.name and \ Api.query.filter_by(name=api_name, project_id=project_id).first(): return bad_request('please use a different Api name') api.from_dict(data) db.session.add(api) session_commit() data = api.to_dict() response = trueReturn(data, 'update success') return response # 查 if operate_type == '3': ''' [{ 'project_id': project_id, 'module_list':[ { 'module_id': module_id, 'api_list': [{}] } ] }] ''' if api_id: api = Api.query.get_or_404(api_id) if Project.query.get( api.project_id) not in g.current_user.followed_projects( ).all(): return bad_request('you are not the member of project') return trueReturn(api.to_dict(), 'found it') if not project_id and not module_id: page_num = int(data.get('page_num', 1)) per_page = int(data.get('per_page', 10)) payload = Api.to_collection_dict(page_num, per_page) response = trueReturn(payload, 'list success') return response # if module_id: # module = Module.query.get_or_404(module_id) # project = Project.query.get(module.project_id) # if project not in g.current_user.followed_projects().all(): # return bad_request('you are not the member of project') # # # api_list = [] # # for api in module.apis.all(): # # api_data = api.to_dict() # # api_list.append(api_data) # # module_data = { # # 'module_id': module.id, # # 'api_list': api_list # # } # response = trueReturn(module_data, 'list module-api success') # return response # # if project_id: # project = Project.query.get(project_id) # if project not in g.current_user.followed_projects().all(): # return bad_request('you are not the member of project') # module_list = [] # for module in project.modules.all(): # api_list = [] # for api in module.apis.all(): # api_data = api.to_dict() # api_list.append(api_data) # module_data = { # 'module_id': module.id, # 'api_list': api_list # } # module_list.append(module_data) # project_data = { # 'project_id': project.id, # 'module_list': module_list # } # response = trueReturn(project_data, 'list project-module-api success') # return response # 删 if operate_type == '4': if not api_id: return bad_request('please input api_id') for id in api_id: api = Api.query.get_or_404(id) if Project.query.get( api.project_id) not in g.current_user.followed_projects( ).all(): return bad_request('you are not the member of project') if api.module_id != module_id or api.project_id != project_id: return bad_request( 'api not in this module or this project, it might be something wrong' ) db.session.delete(api) session_commit() data = {'api_id': api_id} response = trueReturn(data, 'delete success') return response # Run if operate_type == '5': if not data: return bad_request('no data found to run test') for field in ['req_headers', 'req_cookies', 'req_params', 'req_body']: if field in data: payload = objlist_to_str(data.get(field)) data[field] = payload # print(data) tester = Runner([data]) # try: report = tester.run() # except Exception as e: # print(e) # return bad_request('wrong request') report = json.loads(report) return trueReturn(report, 'run success') # 筛选查 if operate_type == '6': if not project_id and not module_id: return bad_request('must include project_id or module_id') if module_id: module = Module.query.get_or_404(module_id) project = Project.query.get(module.project_id) modules = [module] else: project = Project.query.get(project_id) modules = project.modules.all() if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') project_list = [project] payload = [] for project in project_list: module_list = [] for module in modules: api_list = [] for api in module.apis.all(): api_data = api.to_dict() api_list.append(api_data) module_data = { 'module_id': module.id, 'module_name': module.module_name, 'api_list': api_list } module_list.append(module_data) project_data = { 'project_id': project.id, 'project_name': project.project_name, 'module_list': module_list } payload.append(project_data) data = {'Api_items': payload, 'meta': ''} response = trueReturn(data, 'special list success') return response
def operate_report(): ''' operate_type : '2' = 查, '3' = 删 ''' data = request.get_json() or {} report_id = data.get('report_id') operate_type = data.get('operate_type') testcase_id = data.get('testcase_id') if not operate_type: return bad_request('must include operate_type') if not testcase_id: return bad_request('must include testcase_id') testcase = TestCase.query.get_or_404(int(testcase_id)) if Project.query.get(testcase.project_id ) not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') # 查 if operate_type == '2': if report_id: if isinstance(report_id, list): return bad_request('please select one report only to review') report = Report.query.get_or_404(int(report_id)) project = Project.query.get_or_404(testcase.project_id) if report.testcase_id != testcase_id: return bad_request('no report %s in testcase %s' % (report.name, testcase.name)) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) data = report.to_dict() return trueReturn(data, 'found it') else: page_num = int(data.get('page_num', 1)) per_page = int(data.get('per_page', 10)) payload = testcase.to_reports_dict(page_num, per_page) response = trueReturn(payload, 'list success') return response # 删 if operate_type == '3': if not report_id or not isinstance(report_id, list): return bad_request('please select reports to del') for id in report_id: report = Report.query.get_or_404(id) db.session.delete(report) session_commit() data = {'report_id_list': report_id} response = trueReturn(data, 'delete success') return response
def operate_env(): data = request.get_json() or {} project_id = data.get('project_id') env_name = data.get('env_name') env_id = data.get('env_id') operate_type = data.get('operate_type') if not operate_type: return bad_request('must include operate_type') # 增 if operate_type == '1': if not project_id: return bad_request('must include project_id') project = Project.query.get_or_404(project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) if not env_name: return bad_request('must include environment name') if Env.query.filter_by(env_name=env_name).first(): return bad_request('there is environment %s in this project %s' % (env_name, project.project_name)) env = Env() env.from_dict(data) db.session.add(env) session_commit() data = env.to_dict() response = trueReturn(data, 'create environment success') return response # 改 if operate_type == '2': print(data) if project_id: project = Project.query.get_or_404(project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) env = Env.query.get_or_404(env_id) if Project.query.get(env.project_id ) not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') if env_name and env_name != env.env_name and \ Env.query.filter_by(env_name=env_name).first(): return bad_request( 'please use a different environment name or version') # if env_version and env_version != env.env_version and \ # Env.query.filter_by(env_name=env_name, env_version=env_version).first(): # return bad_request('please use a different environment name or version') env.from_dict(data) db.session.add(env) session_commit() data = env.to_dict() response = trueReturn(data, 'update environment success') return response # 查 if operate_type == '3': ''' [{ 'project_name': project_name, 'env_list':[{}] }] ''' if env_id: env = Env.query.get_or_404(env_id) return trueReturn(env.to_dict(), 'found it') page_num = int(data.get('page_num', 1)) per_page = int(data.get('per_page', 10)) payload = Env.to_collection_dict(page_num, per_page) response = trueReturn(payload, 'list success') return response # 删 if operate_type == '4': if not env_id: return bad_request('please input env_id') env = Env.query.get_or_404(env_id) if Project.query.get(env.project_id ) not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project') if env.testcases.all() or env.teststeps.all(): return bad_request( 'there are tests under this env, please delete those tests first' ) db.session.delete(env) session_commit() data = {'env_id': env_id} response = trueReturn(data, 'delete success') return response
def operate_module(): data = request.get_json() or {} project_id = data.get('project_id') module_name = data.get('module_name') origin_module_list = data.get('origin_module_list') origin_module_name = data.get('origin_module_name') operate_type = data.get('operate_type') if not project_id: return bad_request('must include project id') if not operate_type: return bad_request('must include operate_type') project = Project.query.filter_by(id=project_id).first_or_404() if project.owner_name != g.current_user.username: return bad_request('you are not the owner of project %s' % project.project_name) # 增 if operate_type == '1': if not module_name: return bad_request('please input module name') module = Module.query.filter_by(module_name=module_name).first() if module: return bad_request('there is module %s in this project %s' % (module_name, project.project_name)) data = {'module_name': module_name, 'project_id': project.id} module = Module() module.from_dict(data) db.session.add(module) session_commit() data = module.to_dict() response = trueReturn(data, 'create module success') return response # 改 if operate_type == '2': if not origin_module_name: return bad_request('please select module name') module = Module.query.filter_by( module_name=origin_module_name).first_or_404() if not module_name or module_name == '': return bad_request('please input a new module name') if module_name == origin_module_name: return bad_request('no change') if Module.query.filter_by(module_name=module_name).first(): return bad_request('please use a different module name') module.module_name = module_name db.session.add(module) session_commit() data = module.to_dict() response = trueReturn(data, 'update module success') return response # 查 if operate_type == '3': data = { 'project_name': project.project_name, 'modules': project.to_dict()['modules'] } response = trueReturn(data, 'list success') return response # 删 if operate_type == '4': if not origin_module_list: return bad_request('please select module name') for origin_module in origin_module_list: origin_module_name = origin_module['name'] module = Module.query.filter_by( module_name=origin_module_name).first_or_404() if module.apis.all(): return bad_request( 'there are Apis under this module, please delete those Apis first' ) db.session.delete(module) session_commit() data = origin_module_list response = trueReturn(data, 'delete success') return response
def operate_teststep(): ''' operate_type : '1' = 增,改 '2' = 查, '3' = 删 ''' data = request.get_json() or {} api_id = data.get('api_id') teststep_name = data.get('name') teststep_id = data.get('teststep_id') operate_type = data.get('operate_type') if not operate_type: return bad_request('must include operate_type') api = Api.query.get_or_404(api_id) project = Project.query.get_or_404(api.project_id) if project not in g.current_user.followed_projects().all(): return bad_request('you are not the member of project %s' % project.project_name) # 增,改 if operate_type == '1': if not teststep_id: if not teststep_name: return bad_request('please input teststep_name') if TestStep.query.filter_by(name=teststep_name, api_id=api_id).first(): return bad_request('Teststep %s already exists' % teststep_name) teststep = TestStep() teststep.from_dict(data) db.session.add(teststep) session_commit() data = teststep.to_dict() response = trueReturn(data, 'create teststep success') return response if teststep_id: teststep = TestStep.query.get_or_404(teststep_id) if teststep_name and teststep_name != teststep.name \ and TestStep.query.filter_by(name=teststep_name).first(): return bad_request('please use a different teststep name') teststep.from_dict(data) db.session.add(teststep) session_commit() data = teststep.to_dict() response = trueReturn(data, 'update teststep success') return response # 查 if operate_type == '2': if teststep_id: teststep = TestStep.query.get_or_404(teststep_id) return trueReturn(teststep.to_dict(), 'found it') else: return bad_request('please select one teststep') # 删 if operate_type == '3': if not teststep_id: return bad_request('please select one teststep at least') teststep = TestStep.query.get_or_404(teststep_id) db.session.delete(teststep) session_commit() data = {'teststep_id': teststep_id} response = trueReturn(data, 'delete success') return response