def remove_scenario(): """POST endpoint for removing the scenario. Params: { scenario_id: required, action: required -> DISABLE, ACTIVE, REMOVE } """ scenario_id = check_none_and_blank(request, 'scenario_id') scenario = get_scenario(scenario_id) action = check_none_and_blank(request, 'action') last_cycle = get_last_cycle(scenario.project_id) if action in ['DISABLE', 'ENABLE', 'REMOVE']: if action == 'DISABLE': state = StateType.disable cycle_state = StateType.blocked elif action == 'ENABLE': state = StateType.active cycle_state = StateType.not_executed else: state = StateType.removed cycle_state = None scenario_case_process(last_cycle, scenario, state, action, cycle_state) else: return make_response(jsonify(message='ACTION_UNKNOW')) return make_response(jsonify(message='DONE'))
def get_cases_for_cyle(project_id, cycle_id, scenario_id): project = get_project(project_id) scenario = get_scenario(scenario_id) cycle = get_cycle(cycle_id, project_id) cycle_cases_h = CycleCases.query.filter_by(cycle_id=cycle.id).all() cases = Case.query.filter_by(scenario_id=scenario.id) obj = [] for item in cycle_cases_h: for case in cases: if item.case_id == case.id: cases_tags_raw = TagCase.query.filter_by(case_id=case.id).all() schema = TagCaseSchema(many=True) case_tags = schema.dump(cases_tags_raw).data temp = {} temp['case_name'] = case.name temp['case_id'] = case.id temp['case_cycle_id'] = item.id temp['case_cycle_state'] = item.state_code.value temp['tags'] = case_tags obj.append(temp) break return make_response( jsonify(scenario_name=scenario.name, scenario_id=scenario.id, cycle_id=cycle.id, cases=obj))
def remove_tag(): scenario_id = check_none_and_blank(request, 'scenario_id') scenario = get_scenario(scenario_id) tag_id = check_none_and_blank(request, 'tag_id') tag = get_tagscenario(tag_id) db.session.delete(tag) db.session.commit() return make_response(jsonify(message='TAG_REMOVED'))
def tstcase_changestatus(scenario_id): """POST endpoint for new scenarios. Param: { 'case_id': required, 'action': required, } TODO: State is not defined """ case_id = check_none_and_blank(request, 'case_id') action = check_none_and_blank(request, 'action') scenario = get_scenario(scenario_id) tst_case = get_tstcase(case_id) if scenario.state_code == StateType.disable: return make_response(jsonify(message='SCENARIO_DISABLED')) last_cycle = get_last_cycle(scenario.project_id) if last_cycle: cycle_case = CycleCases.query.filter_by( cycle_id=last_cycle.id).filter_by(case_id=case_id).first() if action == 'DISABLE': state = StateType.disable cycle_state = StateType.blocked elif action == 'ENABLE': state = StateType.active cycle_state = StateType.not_executed elif action == 'REMOVE': if last_cycle and last_cycle.state_code == StateType.active: cycle_state = None if cycle_case: db.session.delete(cycle_case) db.session.commit() state = StateType.removed else: return make_response(jsonify(message='ACTION_UNKNOW')) tst_case.state_code = state db.session.add(tst_case) db.session.commit() if last_cycle: if last_cycle.state_code == StateType.active: if cycle_case and cycle_state: cycle_case.state_code = cycle_state db.session.add(cycle_case) db.session.commit() return make_response(jsonify(message='DONE'))
def get_scenario_n_tst_cases(scenario_id): """Return Scenario and Cases.""" schema = TestCaseSchema(many=True) scenario = get_scenario(scenario_id) cases = Case.query.filter_by( scenario_id=scenario.id).filter(Case.state_code != StateType.removed).all() tst_cases = schema.dump(cases).data return make_response(jsonify(scenario_id=scenario.id, scenario_state=scenario.state_code.value, scenario_name=scenario.name, cases=tst_cases))
def register_tag(): """POST endpoint for adding a tag to a scenario. Param: { 'scenario_id': required, 'tag': required } """ scenario_id = check_none_and_blank(request, 'scenario_id') scenario = get_scenario(scenario_id) tag = check_none_and_blank(request, 'tag') new_tag = TagScenario(scenario_id=scenario_id, tag=tag) db.session.add(new_tag) db.session.commit() return make_response(jsonify(message='TAG_CREATED'))
def edit(): """POST endpoint for editing existing scenarios. Param: { "scenario_id": required, "scenario_name": required } """ scenario_id = check_none_and_blank(request, 'scenario_id') scenario = get_scenario(scenario_id) scenario_name = check_none_and_blank(request, 'scenario_name') scenario.name = scenario_name db.session.add(scenario) db.session.commit() return make_response(jsonify(message='SCENARIO_EDITED'))
def get_scenario_n_tst_cases(scenario_id): """Return Scenario and Cases.""" schema = TestCaseSchema(many=True) scenario = get_scenario(scenario_id) cases = Case.query.filter_by( scenario_id=scenario.id).filter(Case.state_code != StateType.removed).all() tst_cases = schema.dump(cases).data for case in tst_cases: cases_tags_raw = TagCase.query.filter_by( case_id=case['id']).all() schema = TagCaseSchema(many=True) case_tags = schema.dump(cases_tags_raw).data case['tags'] = case_tags return make_response(jsonify(scenario_id=scenario.id, scenario_state=scenario.state_code.value, scenario_name=scenario.name, cases=tst_cases))
def get_scenario_n_tst_cases(scenario_id): """Return Scenario and Cases.""" schema = TestCaseSchema(many=True) scenario = get_scenario(scenario_id) cases = Case.query.filter_by(scenario_id=scenario.id).filter( Case.state_code != StateType.removed).all() tst_cases = schema.dump(cases).data for case in tst_cases: cases_tags_raw = TagCase.query.filter_by(case_id=case['id']).all() schema = TagCaseSchema(many=True) case_tags = schema.dump(cases_tags_raw).data case['tags'] = case_tags return make_response( jsonify(scenario_id=scenario.id, scenario_state=scenario.state_code.value, scenario_name=scenario.name, cases=tst_cases))
def new(scenario_id): """POST endpoint for new scenarios. Param: {'case_name': required } """ case_name = check_none_and_blank(request, 'case_name') scenario = get_scenario(scenario_id) case = Case(name=case_name, scenario_id=scenario.id) db.session.add(case) db.session.commit() project_lasty_cycle = get_last_cycle(scenario.project_id) if project_lasty_cycle: cyclecase = CycleCases(cycle_id=project_lasty_cycle.id, case_id=case.id, scenario_id=case.scenario_id) db.session.add(cyclecase) db.session.commit() return make_response(jsonify(message='CASE_CREATED'))
def show_scenario(scenario_id): """Return Testcase Info.""" single_scenario = get_scenario(scenario_id) scenario_schema = ScenariosSchema(many=False) return_scenario = scenario_schema.dump(single_scenario).data return make_response(jsonify(return_scenario))