예제 #1
0
def reorder_relation(relation_id, new_order):
    """
    调整某个已有interface的order
    同时将其他影响范围内的interface的order全部加一或者减一
    :return:
    """
    with session_scope() as session:
        relation = session.query(UseCaseInterfaceRelation).filter_by(
            id=relation_id).one()
        current_order = relation.order
        use_case_id = relation.use_case_id
        if current_order == new_order:
            return
        elif current_order < new_order:
            session\
                .query(UseCaseInterfaceRelation)\
                .filter_by(use_case_id=use_case_id)\
                .filter(UseCaseInterfaceRelation.order > current_order)\
                .filter(UseCaseInterfaceRelation.order <= new_order)\
                .update({'order': UseCaseInterfaceRelation.order - 1})
        elif current_order > new_order:
            session\
                .query(UseCaseInterfaceRelation)\
                .filter_by(use_case_id=use_case_id)\
                .filter(UseCaseInterfaceRelation.order < current_order)\
                .filter(UseCaseInterfaceRelation.order >= new_order)\
                .update({'order': UseCaseInterfaceRelation.order + 1})
        session\
            .query(UseCaseInterfaceRelation)\
            .filter_by(id=relation_id)\
            .update({'order': new_order})
예제 #2
0
def add_relation(use_case_id, interface_id, order=None):
    """
    将某interface与use_case关联
    如未传入order则加入到最后
    如传入order则大于当前order的全部加一
    :param use_case_id:         use_case id
    :param interface_id:        interface id
    :param order:               interface顺序,如果为空加入到最后
    :return:
    """
    with session_scope() as session:
        if not order:
            order = get_max_order(use_case_id) + 1
        else:
            session\
                .query(UseCaseInterfaceRelation)\
                .filter_by(use_case_id=use_case_id)\
                .filter(UseCaseInterfaceRelation.order >= order)\
                .update({'order': UseCaseInterfaceRelation.order + 1})
        relation = UseCaseInterfaceRelation(use_case_id=use_case_id,
                                            interface_id=interface_id,
                                            order=order)
        session.add(relation)
        session.flush()
        return relation.id
예제 #3
0
def del_environment_line_info(**kwargs):
    info_list = kwargs.get('id')
    if not isinstance(info_list, list):
        info_list = [info_list]
    with session_scope() as session:
        for line_id in info_list:
            session.query(EnvironmentInfo).filter_by(id=line_id).delete(synchronize_session=False)
예제 #4
0
def query_line_relation(**kwargs):
    with session_scope() as session:
        busines_query = session.query(BusinessLine).filter_by(**kwargs).filter_by(status=1)
        system_query = session.query(SystemLine).filter_by(**kwargs).filter_by(status=1)
        function_query = session.query(FunctionLine).filter_by(**kwargs).filter_by(status=1)
        business_line_dict = {}
        for query in busines_query:
            business_line_info = query.to_dict()
            business_line_dict[business_line_info['id']] = business_line_info
        system_line_dict = {}
        for query in system_query:
            system_line_info = query.to_dict()
            system_line_dict[system_line_info['id']] = system_line_info
        function_dict = {}
        for function_obj in function_query:
            function_info = function_obj.to_dict()
            if not function_info['id']:
                continue
            system_line_id = function_info['system_line_id']
            business_line_id = system_line_dict[system_line_id].get('business_line_id')
            business_name = business_line_dict[business_line_id].get('business_name')
            system_name = system_line_dict[system_line_id].get('system_name')
            function_name = function_info['function_name']
            function_dict[function_info['id']] = {'business_name': business_name, 'system_name': system_name,
                                                  'function_name': function_name, 'system_line_id': system_line_id,
                                                  'business_line_id': business_line_id,
                                                  'function_line_id': function_info['id']}
        return function_dict
예제 #5
0
def del_environment_line_info(**kwargs):
    info_list = kwargs.get('id')
    if not isinstance(info_list, list):
        info_list = [info_list]
    with session_scope() as session:
        for line_id in info_list:
            session.query(EnvironmentInfo).filter_by(id=line_id).update(
                {'status': 0})
예제 #6
0
파일: batch.py 프로젝트: Arealiber/TestAuto
def get_batch_use_case_relation(**kwargs):
    with session_scope() as session:
        query = session.query(BatchUseCaseRelation).filter_by(
            **kwargs).filter_by(status=1)
    batch_use_case_relation_list = [
        b_use_case.to_dict() for b_use_case in query
    ]
    return batch_use_case_relation_list
예제 #7
0
def del_business_line(**kwargs):
    business_id = kwargs.get('id')
    if not isinstance(business_id, list):
        business_id = [business_id]
    with session_scope() as session:
        query = session.query(BusinessLine)
        query.filter(BusinessLine.id.in_(business_id)).delete(synchronize_session=False)
    return business_id
예제 #8
0
def get_encryption_id_to_name():
    with session_scope() as session:
        query = session.query(Encryption).all()
        encryption_id_to_name = {}
        for encryption in query:
            encryption_id_to_name[
                encryption.id] = encryption.encryption_method_name
        return encryption_id_to_name
예제 #9
0
def del_email_function_relation(email_id, function_ids):
    function_ids = [function_ids] if not isinstance(function_ids, list) else function_ids
    with session_scope() as session:
        for function_id in function_ids:
            session.query(EFR).\
                filter_by(function_id=function_id).\
                filter_by(email_id=email_id).\
                update({'status': 0})
예제 #10
0
def del_function_line(**kwargs):
    function_id = kwargs.get('id')
    if not isinstance(function_id, list):
        function_id = [function_id]
    with session_scope() as session:
        query = session.query(FunctionLine)
        query.filter(FunctionLine.id.in_(function_id)).delete(synchronize_session=False)
    return function_id
예제 #11
0
def del_system_line(**kwargs):
    system_line_id = kwargs.get('id')
    if not isinstance(system_line_id, list):
        system_line_id = [system_line_id]
    with session_scope() as session:
        query = session.query(SystemLine)
        query.filter(SystemLine.id.in_(system_line_id)).delete(synchronize_session=False)
    return system_line_id
예제 #12
0
def modify_case_parameter_relation(**kwargs):
    """
    更新用例关联参数信息
    :param kwargs:
    :return:
    """
    with session_scope() as session:
        id = kwargs.pop('id')
        session.query(UseCaseParameterRelation).filter_by(id=id).update(kwargs)
예제 #13
0
def del_case_parameter_relation(**kwargs):
    """
    删除用例关联参数
    :param kwargs:
    :return:
    """
    with session_scope() as session:
        session.query(UseCaseParameterRelation).filter_by(**kwargs).update(
            {'status': 0})
예제 #14
0
def update_eval_relation(id, eval_string):
    """
    获取某use_case下interface的最大eval_string值
    :param : id, eval_string
    :return:
    """
    with session_scope() as session:
        session.query(UseCaseInterfaceRelation).filter_by(id=id).update(
            {'eval_string': eval_string})
예제 #15
0
def get_email_batch():
    with session_scope() as session:
        relation = session.query(EBR).filter_by(status=1)
        email_to_batchs = {}
        for m in relation:
            if m.email_id in email_to_batchs:
                email_to_batchs[m.email_id].append(m.batch_id)
            else:
                email_to_batchs[m.email_id] = [m.batch_id]
        return email_to_batchs
예제 #16
0
def get_use_case_with_function_id(function_line_list):
    with session_scope() as session:
        use_case_with_function_line_dict = {}
        for function_info in function_line_list:
            function_id = function_info.get('id')
            query = session.query(UseCase).filter_by(function_id=function_id).filter_by(status=1).\
                order_by(UseCase.create_time.desc())
            use_case_list = [use_case.to_dict() for use_case in query]
            use_case_with_function_line_dict[function_id] = use_case_list
    return use_case_with_function_line_dict
예제 #17
0
def get_multi_use_case(use_case_list):
    with session_scope() as session:
        query = session.query(UseCase).filter(UseCase.id.in_(use_case_list)).\
            order_by(UseCase.create_time.desc())
    use_case_dict = {}
    for use_case in query:
        use_case_info = use_case.to_dict()
        use_case_id = use_case_info['id']
        use_case_dict[use_case_id] = use_case_info
    return use_case_dict
예제 #18
0
def modify_interface_delay_relation(relation_id, interface_delay):
    """
    更新关系表中的interface_delay
    :param relation_id:
    :param interface_delay:
    :return:
    """
    with session_scope() as session:
        session.query(UseCaseInterfaceRelation).filter_by(
            id=relation_id).update({'interface_delay': interface_delay})
예제 #19
0
def get_interface(**kwargs):
    if 'interface_name' not in kwargs:
        interface_name = ''
    else:
        interface_name = kwargs.pop('interface_name')
    with session_scope() as session:
        query = session.query(Interface).filter(Interface.interface_name.like('%{0}%'.format(interface_name))).\
            filter_by(**kwargs).filter_by(status=1).order_by(Interface.update_time.desc())
    interface_list = [interface.to_dict() for interface in query]
    return interface_list
예제 #20
0
def query_email_by_function_id(function_id):
    with session_scope() as session:
        q = session.query(EFR).\
            filter_by(function_id=function_id).\
            filter_by(status=1)
        email_id_list = [email.email_id for email in q]
        email = session.query(Email).\
            filter(Email.id.in_(email_id_list)).\
            filter_by(status=1)
        return [m.to_dict() for m in email]
예제 #21
0
def add_case_parameter_relation(**kwargs):
    """
    添加用例关联参数信息
    :param kwargs:
    :return:
    """
    with session_scope() as session:
        use_case_parameter = UseCaseParameterRelation(**kwargs)
        session.add(use_case_parameter)
        session.flush()
        return use_case_parameter.id
예제 #22
0
def get_case_parameter_relation(**kwargs):
    """
    查询用例关联参数信息
    :param kwargs:
    :return:
    """
    with session_scope() as session:
        query = session.query(UseCaseParameterRelation).filter_by(
            **kwargs).filter_by(status=1)
        session.expunge_all()
    parameter_list = [s_param.to_dict() for s_param in query]
    return parameter_list
예제 #23
0
def del_use_case(**kwargs):
    """
    删除use_case
    同时将所有该use_case的关联关系清除
    :param kwargs:
    :return:
    """
    with session_scope() as session:
        id = kwargs.pop('id')
        session.query(UseCase).filter_by(id=id).update({'status': 0})
        session.query(BatchUseCaseRelation).filter_by(use_case_id=id).update(
            {'status': 0})
        session.query(UseCaseInterfaceRelation).filter_by(
            use_case_id=id).update({'status': 0})
예제 #24
0
def get_relation(**kwargs):
    """
    根据传入参数不同获取不同信息:
        use_case_id:获取某个use_case包含的interface
        interface_id:获取某个interface关联的use_case
    :param: use_case_id:
    :return:
    """
    with session_scope() as session:
        query = session\
            .query(UseCaseInterfaceRelation)\
            .filter_by(**kwargs)\
            .filter_by(status=1).order_by(UseCaseInterfaceRelation.order)
        session.expunge_all()
    relation_list = [s_relation.to_dict() for s_relation in query]
    return relation_list
예제 #25
0
def get_max_order(use_case_id):
    """
    获取某use_case下interface的最大order数
    :param use_case_id:         use_case id
    :return:                    最大order数
    """
    with session_scope() as session:
        max_order_relation = session\
            .query(UseCaseInterfaceRelation)\
            .filter_by(use_case_id=use_case_id, status=1)\
            .order_by(desc(UseCaseInterfaceRelation.order))\
            .first()
        if not max_order_relation:
            return 0
        else:
            return max_order_relation.order
예제 #26
0
def del_relation(relation_id):
    """
    删除use_case与interface关系
    如果有order大于当前删除order的,全部减一
    :param relation_id:           relation id
    :return:
    """
    with session_scope() as session:
        relation = session.query(UseCaseInterfaceRelation).filter_by(
            id=relation_id).one()
        current_order = relation.order
        use_case_id = relation.use_case_id
        session.query(UseCaseInterfaceRelation).filter_by(
            id=relation_id).update({'status': 0})
        session\
            .query(UseCaseInterfaceRelation)\
            .filter_by(use_case_id=use_case_id)\
            .filter(UseCaseInterfaceRelation.order > current_order)\
            .update({'order': UseCaseInterfaceRelation.order - 1})
예제 #27
0
def add_email_account(**kwargs):
    with session_scope() as session:
        email = Email(**kwargs)
        session.add(email)
        session.flush()
        return email.id
예제 #28
0
def del_email_account(**kwargs):
    email_id = kwargs.pop('id')
    with session_scope() as session:
        session.query(Email).filter_by(id=email_id).delete(
            synchronize_session=False)
예제 #29
0
def query_email_account():
    with session_scope() as session:
        query = session.query(Email)
        email_list = [email.to_dict() for email in query]
        return email_list
예제 #30
0
def add_test(**kwargs):
    with session_scope() as session:
        testObj = Test(**kwargs)
        session.add(testObj)
        session.flush()