示例#1
0
文件: views.py 项目: carlosvl/MetaCI
def test_result_detail(request, result_id):
    build_qs = view_queryset(request)
    result = get_object_or_404(
        TestResult,
        id=result_id,
        build_flow__build__in=build_qs,
    )
    data = {'result': result}
    if result.method.testclass.test_type == 'Apex':
        stats = STATS_MAP.keys()
        stats.sort()
        test_stats = []
        test_stats.append({
            'limit': 'Duration',
            'used': result.duration,
            'allowed': 'N/A',
            'percent': 'N/A',
        })
        for stat in stats:
            used = getattr(result, '{}_used'.format(stat), None)
            if not used:
                continue
            test_stats.append({
                'limit':
                STATS_MAP[stat],
                'used':
                used,
                'allowed':
                getattr(result, '{}_allowed'.format(stat), None),
                'percent':
                getattr(result, '{}_percent'.format(stat), None),
            })
        data['test_stats'] = test_stats

    return render(request, 'testresults/test_result_detail.html', data)
示例#2
0
文件: views.py 项目: addys888/metaci
def plan_detail(request, plan_id):
    plan = Plan.objects.get_for_user_or_404(request.user, {"id": plan_id})

    query = {"plan": plan}
    builds = view_queryset(request, query)

    context = {"builds": builds, "plan": plan}
    return render(request, "plan/detail.html", context=context)
示例#3
0
def repo_detail(request, owner, name):
    repo = Repository.objects.get_for_user_or_404(
        request.user, {"owner": owner, "name": name}
    )

    query = {"repo": repo}
    builds = view_queryset(request, query)
    context = {"repo": repo, "builds": builds}
    return render(request, "repository/repo_detail.html", context=context)
示例#4
0
def branch_detail(request, owner, name, branch):
    repo = Repository.objects.get_for_user_or_404(
        request.user, {"owner": owner, "name": name}
    )

    branch = get_object_or_404(Branch, repo=repo, name=branch)
    query = {"branch": branch}
    builds = view_queryset(request, query)
    context = {"branch": branch, "builds": builds}
    return render(request, "repository/branch_detail.html", context=context)
示例#5
0
def build_list(request):
    query = {}
    repo = request.GET.get("repo")
    if repo:
        query["repo__name"] = repo

    build_filter, builds = view_queryset(
        request, query, request.GET.get("status"), filterset_class=BuildFilter
    )
    context = {"filter": build_filter, "builds": builds}
    return render(request, "build/build_list.html", context=context)
示例#6
0
文件: views.py 项目: addys888/metaci
def org_detail(request, org_id):
    org = Org.objects.get_for_user_or_404(request.user, {"id": org_id})

    # Get builds
    query = {"org": org}
    builds = view_queryset(request, query)

    # Get ScratchOrgInstances
    instances = org.instances.filter(deleted=False) if org.scratch else []

    context = {"builds": builds, "org": org, "instances": instances}
    return render(request, "cumulusci/org_detail.html", context=context)
示例#7
0
文件: views.py 项目: carlosvl/MetaCI
def test_method_trend(request, method_id):
    build_qs = view_queryset(request)
    method = get_object_or_404(TestMethod, id=method_id)

    latest_results = method.test_results.filter(
        build_flow__build__in=build_qs, ).order_by('-build_flow__time_end')
    latest_results = paginate(latest_results, request)

    results_by_plan = {}
    i = 0
    for result in latest_results:
        plan_name = (
            result.build_flow.build.plan.name,
            result.build_flow.build.branch.name,
        )
        if plan_name not in results_by_plan:
            # Create the list padded with None for prior columns
            results_by_plan[plan_name] = [
                None,
            ] * i
        results_by_plan[plan_name].append(result)
        i += 1

        # Pad the other field's lists with None values for this column
        for key in results_by_plan.keys():
            if key == plan_name:
                continue
            else:
                results_by_plan[key].append(None)

    results = []
    plan_keys = results_by_plan.keys()
    plan_keys.sort()
    for key in plan_keys:
        plan_results = []
        for result in results_by_plan[key]:
            plan_results.append(result)
        results.append((key[0], key[1], plan_results))

    headers = ['Plan', 'Branch/Tag']
    headers += [
        '',
    ] * i

    data = {
        'method': method,
        'headers': headers,
        'results': results,
        'all_results': latest_results,
    }

    return render(request, 'testresults/test_method_trend.html', data)
示例#8
0
def org_detail(request, org_id):
    org = Org.objects.get_for_user_or_404(request.user, {"id": org_id})

    # Get builds
    query = {"org": org}
    builds = view_queryset(request, query)

    # Get ScratchOrgInstances
    instances = org.instances.filter(deleted=False) if org.scratch else []

    context = {"builds": builds, "org": org, "instances": instances}
    context[
        "can_log_in"] = org.scratch or settings.METACI_ALLOW_PERSISTENT_ORG_LOGIN
    return render(request, "cumulusci/org_detail.html", context=context)
示例#9
0
def build_list(request):
    query = {}
    repo = request.GET.get('repo')
    if repo:
        query['repo__name'] = repo
    build_filter, builds = view_queryset(request,
                                         query,
                                         request.GET.get('status'),
                                         filter_class=BuildFilter)
    context = {
        'filter': build_filter,
        'builds': builds,
    }
    return render(request, 'build/build_list.html', context=context)
示例#10
0
文件: views.py 项目: jstvz/MetaCI
def plan_detail(request, plan_id):
    query = {'id': plan_id}
    if not request.user.is_staff:
        query['public'] = True
    plan = get_object_or_404(Plan, **query)

    query = {'plan': plan}
    builds = view_queryset(request, query)

    context = {
        'builds': builds,
        'plan': plan,
    } 
    return render(request, 'plan/detail.html', context=context)
示例#11
0
文件: views.py 项目: jstvz/MetaCI
def plan_detail_repo(request, plan_id, repo_owner, repo_name):
    query = {'id': plan_id}
    if not request.user.is_staff:
        query['public'] = True
    plan = get_object_or_404(Plan, **query)
    repo = get_object_or_404(Repository, owner=repo_owner, name=repo_name)
    query = {'plan': plan, 'repo': repo}
    builds = view_queryset(request, query)

    context = {
        'builds': builds,
        'plan': plan,
    }
    return render(request, 'plan/detail.html', context=context)
示例#12
0
文件: views.py 项目: carlosvl/MetaCI
def test_method_peek(request, method_id):
    build_qs = view_queryset(request)
    method = get_object_or_404(TestMethod, id=method_id)
    latest_fails = method.test_results.filter(
        outcome='Fail',
        build_flow__build__in=build_qs,
    ).order_by('-build_flow__time_end').select_related(
        'build_flow', 'build_flow__build', 'build_flow__build__repo',
        'build_flow__build__plan', 'build_flow__build__branch',
        'build_flow__build__branch__repo')
    latest_fails = paginate(latest_fails, request)

    data = {'method': method, 'latest_fails': latest_fails}

    return render(request, 'testresults/test_method_peek.html', data)
示例#13
0
文件: views.py 项目: addys888/metaci
def org_instance_detail(request, org_id, instance_id):
    instance = get_object_or_404(ScratchOrgInstance, org_id=org_id, id=instance_id)

    # Verify access
    try:
        org = Org.objects.for_user(request.user).get(id=org_id)
    except Org.DoesNotExist:
        raise PermissionDenied("You are not authorized to view this org")

    # Get builds
    query = {"org_instance": instance}
    builds = view_queryset(request, query)

    context = {"builds": builds, "instance": instance}
    return render(request, "cumulusci/org_instance_detail.html", context=context)
示例#14
0
def repo_detail(request, owner, name):
    query = {
        'owner': owner,
        'name': name,
    }
    if not request.user.is_staff:
        query['public'] = True
    repo = get_object_or_404(Repository, **query)

    query = {'repo': repo}
    builds = view_queryset(request, query)
    context = {
        'repo': repo,
        'builds': builds,
    }
    return render(request, 'repository/repo_detail.html', context=context)
示例#15
0
def branch_detail(request, owner, name, branch):
    query = {
        'owner': owner,
        'name': name,
    }
    if not request.user.is_staff:
        query['public'] = True
    repo = get_object_or_404(Repository, **query)

    branch = get_object_or_404(Branch, repo=repo, name=branch)
    query = {'branch': branch}
    builds = view_queryset(request, query)
    context = {
        'branch': branch,
        'builds': builds,
    }
    return render(request, 'repository/branch_detail.html', context=context)
示例#16
0
文件: views.py 项目: carlosvl/MetaCI
def test_result_robot(request, result_id):
    build_qs = view_queryset(request)
    result = get_object_or_404(
        TestResult,
        id=result_id,
        build_flow__build__in=build_qs,
    )

    if result.robot_xml:
        source = mkstemp()[1]
        log = mkstemp('.html')[1]
        with open(source, 'w') as f:
            f.write(result.robot_xml)
        rebot(source, log=log, output=None, report=None)
        with open(log, 'r') as f:
            log_html = f.read()
        os.remove(source)
        os.remove(log)
    return HttpResponse(log_html)
示例#17
0
文件: views.py 项目: addys888/metaci
def plan_detail_repo(request, plan_id, repo_owner, repo_name):
    planrepo = PlanRepository.objects.get_for_user_or_404(
        request.user,
        {
            "repo__owner": repo_owner,
            "repo__name": repo_name,
            "plan__id": plan_id
        },
    )
    query = {"planrepo": planrepo}
    builds = view_queryset(request, query)

    context = {
        "builds": builds,
        "plan": planrepo.plan,
        "planrepo": planrepo,
        "repo": planrepo.repo,
    }
    return render(request, "plan/plan_repo_detail.html", context=context)