示例#1
0
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'))
示例#2
0
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'))
示例#3
0
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))
示例#4
0
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'))
示例#5
0
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'))
示例#6
0
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'))
示例#7
0
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'))
示例#8
0
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))
示例#9
0
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'))
示例#10
0
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'))
示例#11
0
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'))
示例#12
0
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'))
示例#13
0
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))
示例#14
0
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))
示例#15
0
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'))
示例#16
0
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'))
示例#17
0
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))
示例#18
0
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))