Exemple #1
0
 def query_market_info(cls, model, page_num, select_word, start_time,
                       end_time):
     """
      市场部下载 vue 表格中信息获取
     :param model:
     :param page_num:
     :param select_word:
     :param start_time:
     :param end_time:
     :return:
     """
     start, end = Utils.page_rules(page_num)
     end_time = datetime.now() if end_time is None else end_time
     start_time = Utils.time_str_to_datetime_object(
         '1970-01-01T01:01:01') if start_time is None else start_time
     if select_word is None:
         release_info = model.objects.filter(
             test_result__exact="测试通过",
             is_tab__exact=1,
             is_report=1,
             update_time__range=(start_time,
                                 end_time)).order_by('-update_time').all()
     else:
         release_info = model.objects.filter(
             test_result__exact="测试通过",
             is_tab__exact=1,
             is_report=1,
             update_time__range=(start_time, end_time),
             apk_name__contains=select_word).order_by('-update_time').all()
     data = Utils.model_objects_to_list(release_info)[start:end]
     total = len(release_info)
     return total, data
 def query_build_info_where_not_triggered_by_pull_request(
         cls, model, page_num, select_word):
     """
     pull request 信息不存在时,页面加载表格信息查询
     :param model:
     :param page_num:
     :param select_word:
     :return:
     """
     start, end = Utils.page_rules(page_num)
     if select_word is not None:
         models = model.objects.filter(
             pull_request_id__exact=0,
             commit_msg__contains=select_word).values(
                 "build_id").distinct().order_by('-build_id').all()
     else:
         models = model.objects.filter(pull_request_id__exact=0).values(
             "build_id").distinct().order_by('-build_id').all()
     total = len(models)
     models = list(models)[start:end]
     for i in range(len(models)):
         build_id = models[i].get(const.BUILD_ID_KEY)
         build_model = model.objects.filter(
             build_id__exact=build_id).order_by('-create_time').all()
         models[i] = Utils.model_objects_to_list(build_model)[0]
     return total, models
 def query_pull_request_items(cls, model, pull_request_items_str: str):
     """
      查看打标的 pull request 信息
     :param model:
     :param pull_request_items_str:
     :return:
     """
     pull_request_items_list = pull_request_items_str.split(",")
     data = model.objects.filter(pull_request_id__in=pull_request_items_list).order_by('-pull_request_id').all()
     for model in data:
         if model.complete_time is not None:
             model.complete_time = Utils.utc_to_local(model.complete_time)  # utc 时间转为本地时间
     return Utils.model_objects_to_list(data)
 def query_pull_request_info(cls, model, page_num, select_word=None):
     """
     查询 pull request 信息
     :param model:
     :param page_num:
     :param select_word:
     :return:
     """
     start, end = Utils.page_rules(page_num)
     if select_word is not None:
         model_infos = model.objects.filter(title__contains=select_word).order_by('-pull_request_id').all()
     else:
         model_infos = model.objects.filter().order_by('-pull_request_id').all()
         for model in model_infos:
             if model.complete_time is not None:
                 model.complete_time = Utils.utc_to_local(model.complete_time)  # utc 时间转为本地时间
     total = len(model_infos)
     return total, Utils.model_objects_to_list(model_infos[start: end])
 def query_data_of_a_month_at_specific_time(cls, model, pull_request_id=None, end_time=None):
     """
     获取特定时间,一个月内的 pull request 信息
     :param model:
     :param pull_request_id:
     :param end_time:
     :return:
     """
     if end_time is None:
         end_time = model.objects.filter(pull_request_id__exact=pull_request_id).first().complete_time
         if end_time is None:  # 如果complete time为None,直接返回空数据
             return []
     month = end_time - datetime.timedelta(weeks=4)
     pull_request_models = model.objects.filter(complete_time__gte=month, complete_time__lte=end_time).order_by(
         '-complete_time')
     for model in pull_request_models:
         if model.complete_time is not None:
             model.complete_time = Utils.utc_to_local(model.complete_time)  # utc 时间转为本地时间
     return Utils.model_objects_to_list(pull_request_models)
 def query_test_report(cls, model, apk_id):
     """
     查询测试报告信息,不返回 测试报告具体内容(具体内容为二进制文件,需下载查看)
     :param model:
     :param apk_id:
     :return:
     """
     models = model.objects.filter(apk_id__exact=apk_id).all()
     for i in range(len(models)):
         models[
             i].test_report_data = None  # 测试报告内容为空,否则bytes 类型不能转化为json 格式
     return Utils.model_objects_to_list(models)
 def get_full_info(cls, model, page_num, select_word):
     """
     获得模型和网络数据
     :param model:
     :param page_num:
     :param select_word:
     :return:
     """
     start, end = Util.page_rules(page_num)
     if select_word is not None:
         dl_model_info = model.objects.filter(
             models_name__contains=select_word).order_by(
                 '-create_time').all()
     else:
         dl_model_info = model.objects.filter().order_by(
             '-create_time').all()
     total = len(dl_model_info)
     data = Util.model_objects_to_list(dl_model_info[start:end])
     for i in range(len(data)):
         if len(data[i].get("flops_result_info")) > 0:
             data[i]["flops_result_info"] = json.loads(
                 data[i].get("flops_result_info"), encoding="utf-8")
     return total, data
Exemple #8
0
def query_pull_request_info_of_month(request):
    """
    获得特定时间一个月内的 pull request 信息
    :param request:
    :return:
    """
    if request.method == "GET":
        build_id = request.GET.get(const.BUILD_ID_KEY)
        if build_id is not None:  # 自动build查询 过去四周 pull request
            pull_request_id = BuildInfoController.query_pull_request_id_adopt_build_id(BuildInfo, build_id)
            data = PullRequestInfoController.query_data_of_a_month_at_specific_time(PullRequestInfo, pull_request_id)
        else:  # 手动build查询 过去四周 pull request
            end_time = request.GET.get(const.TIME_KEY).split(".")[0]
            end_time = Utils.time_str_to_datetime_object(end_time)
            data = PullRequestInfoController.query_data_of_a_month_at_specific_time(PullRequestInfo, end_time=end_time)
        return JsonResponse(FormatData.response_data(data=data))
    return JsonResponse(FormatData.response_data(code=FormatData.ERROR_CODE, msg=FormatData.ERROR_MSG))
Exemple #9
0
 def query_apk_detail_where_pull_request_id_is_zero(
         cls, model, pull_request_query_data):
     """
     pull request 信息不存在时, 查询对应的 apk detail 信息
     :param model:
     :param pull_request_query_data:
     :return:
     """
     for i in range(len(pull_request_query_data)):
         build_id = pull_request_query_data[i].get(const.BUILD_ID_KEY)
         models = model.objects.filter(build_id__exact=build_id,
                                       apk_type__in=[
                                           "debug", "release"
                                       ]).order_by('-create_time').all()
         pull_request_query_data[i][
             const.DATA_KEY] = Utils.model_objects_to_list(models)
     return pull_request_query_data
 def _write_pull_request_info_status_is_completed(cls, url, model):
     """
     数据库中记录 pull request 状态为完成的
     :param url:
     :param model:
     :return:
     """
     last_complete_time = cls._get_last_complete_time(model)
     pull_request_infos = cls._get_pull_request_info(url)
     for info in pull_request_infos.get(cls._PULL_REQUEST_KEY[1]):
         completion_time = info.get(cls._PULL_REQUEST_KEY[4]).split(".")[0]
         title = info.get(cls._PULL_REQUEST_KEY[-2])
         pull_request_id = info.get(cls._PULL_REQUEST_KEY[-1])
         completion_time = Utils.time_str_to_datetime_object(completion_time)
         if completion_time > last_complete_time:
             model.objects.create(
                 pull_request_id=pull_request_id,
                 title=title,
                 complete_time=completion_time,
                 status=cls._STRING_COMPLETED,
             )