Exemplo n.º 1
0
def metrics(request, group_slug, project_slug):
    group = Group.objects.get(slug=group_slug)
    project = group.projects.get(slug=project_slug)

    environments = [{
        "name": e.slug
    } for e in project.environments.order_by('id').all()]

    metric_set = Metric.objects.filter(
        test_run__environment__project=project).values(
            'suite__slug', 'name').order_by('suite__slug', 'name').distinct()

    metrics = [{
        "name": ":tests:",
        "label": "Test pass %",
        "max": 100,
        "min": 0
    }]
    metrics += [{
        "name": join_name(m['suite__slug'], m['name'])
    } for m in metric_set]

    data = get_metric_data(project, request.GET.getlist('metric'),
                           request.GET.getlist('environment'))

    context = {
        "project": project,
        "environments": environments,
        "metrics": metrics,
        "data": data,
    }
    return render(request, 'squad/metrics.html', context)
Exemplo n.º 2
0
def metrics(request, group_slug, project_slug):
    group = Group.objects.get(slug=group_slug)
    project = group.projects.get(slug=project_slug)

    environments = [{
        "name": e.slug
    } for e in project.environments.order_by('id').all()]
    metrics = __get_metrics_list__(project)

    data = get_metric_data(project, request.GET.getlist('metric'),
                           request.GET.getlist('environment'))

    context = {
        "project":
        project,
        "environments":
        environments,
        "metrics":
        metrics,
        "thresholds":
        list(project.metricthreshold_set.all().values('name', 'value')),
        "data":
        data,
    }
    return render(request, 'squad/metrics.jinja2', context)
Exemplo n.º 3
0
def get(request, group_slug, project_slug):
    group = get_object_or_404(models.Group, slug=group_slug)
    project = get_object_or_404(group.projects, slug=project_slug)

    metrics = request.GET.getlist('metric')
    # If the metrics parameter is not present, return data for all metrics.
    if not metrics:
        metric_set = models.Metric.objects.filter(
            test_run__environment__project=project).values(
                'suite__slug', 'name').order_by('suite__slug',
                                                'name').distinct()

        metrics = [":tests:"]
        metrics += [join_name(m['suite__slug'], m['name']) for m in metric_set]

    environments = request.GET.getlist('environment')

    results = get_metric_data(project, metrics, environments)

    fmt = request.GET.get('format', 'json')
    if fmt == 'json':
        return HttpResponse(json.dumps(results),
                            content_type='application/json; charset=utf-8')
    elif fmt == 'csv':
        return HttpResponse(export_csv(results),
                            content_type='test/csv; charset=utf-8')
    else:
        return HttpResponseBadRequest("Invalid format: %s" % fmt)
Exemplo n.º 4
0
def get(request, group_slug, project_slug):
    group = get_object_or_404(models.Group, slug=group_slug)
    project = get_object_or_404(group.projects, slug=project_slug)

    metrics = request.GET.getlist('metric')
    environments = request.GET.getlist('environment')

    results = get_metric_data(project, metrics, environments)

    return HttpResponse(json.dumps(results),
                        content_type='application/json; charset=utf-8')
Exemplo n.º 5
0
def get(request, group_slug, project_slug):
    project = request.project

    metrics = request.GET.getlist('metric')
    date_start = request.GET.get('date_start', None)
    date_end = request.GET.get('date_end', None)

    if date_start:
        try:
            date_start = datetime.strptime(date_start, "%m-%d-%Y")
        except ValueError:
            return HttpResponseBadRequest(
                "Invalid date_start format: %s. Try using %s notation." %
                (date_start, "%m-%d-%Y"))
    if date_end:
        try:
            date_end = datetime.strptime(date_end, "%m-%d-%Y")
        except ValueError:
            return HttpResponseBadRequest(
                "Invalid date_end format: %s. Try using %s notation." %
                (date_end, "%m-%d-%Y"))

    # If the metrics parameter is not present, return data for all metrics.
    if not metrics:
        metric_set = models.Metric.objects.filter(
            environment__project=project).values(
                'suite__slug',
                'metadata__name').order_by('suite__slug',
                                           'metadata__name').distinct()

        metrics = [":tests:"]
        metrics += [
            join_name(m['suite__slug'], m['metadata__name'])
            for m in metric_set
        ]

    environments = project.environments.filter(
        slug__in=request.GET.getlist('environment'))

    results = get_metric_data(project, metrics, environments, date_start,
                              date_end)

    fmt = request.GET.get('format', 'json')
    if fmt == 'json':
        return HttpResponse(json.dumps(results),
                            content_type='application/json; charset=utf-8')
    elif fmt == 'csv':
        return HttpResponse(export_csv(results),
                            content_type='test/csv; charset=utf-8')
    else:
        return HttpResponseBadRequest("Invalid format: %s" % fmt)
Exemplo n.º 6
0
Arquivo: data.py Projeto: Linaro/squad
def get(request, group_slug, project_slug):
    project = request.project

    metrics = request.GET.getlist('metric')
    date_start = request.GET.get('date_start', None)
    date_end = request.GET.get('date_end', None)

    if date_start:
        try:
            date_start = datetime.strptime(date_start, "%m-%d-%Y")
        except ValueError:
            return HttpResponseBadRequest("Invalid date_start format: %s. Try using %s notation." % (date_start, "%m-%d-%Y"))
    if date_end:
        try:
            date_end = datetime.strptime(date_end, "%m-%d-%Y")
        except ValueError:
            return HttpResponseBadRequest(
                "Invalid date_end format: %s. Try using %s notation." % (date_end, "%m-%d-%Y"))

    # If the metrics parameter is not present, return data for all metrics.
    if not metrics:
        metric_set = models.Metric.objects.filter(
            test_run__environment__project=project
        ).values('suite__slug', 'name').order_by('suite__slug', 'name').distinct()

        metrics = [":tests:"]
        metrics += [join_name(m['suite__slug'], m['name']) for m in metric_set]

    environments = request.GET.getlist('environment')

    results = get_metric_data(project, metrics, environments,
                              date_start, date_end)

    fmt = request.GET.get('format', 'json')
    if fmt == 'json':
        return HttpResponse(
            json.dumps(results),
            content_type='application/json; charset=utf-8'
        )
    elif fmt == 'csv':
        return HttpResponse(
            export_csv(results),
            content_type='test/csv; charset=utf-8'
        )
    else:
        return HttpResponseBadRequest("Invalid format: %s" % fmt)
Exemplo n.º 7
0
def get(request, group_slug, project_slug):
    group = get_object_or_404(models.Group, slug=group_slug)
    project = get_object_or_404(group.projects, slug=project_slug)

    metrics = request.GET.getlist('metric')
    environments = request.GET.getlist('environment')

    results = get_metric_data(project, metrics, environments)

    fmt = request.GET.get('format', 'json')
    if fmt == 'json':
        return HttpResponse(json.dumps(results),
                            content_type='application/json; charset=utf-8')
    elif fmt == 'csv':
        return HttpResponse(export_csv(results),
                            content_type='test/csv; charset=utf-8')
    else:
        return HttpResponseBadRequest("Invalid format: %s" % fmt)
Exemplo n.º 8
0
def metrics(request, group_slug, project_slug):
    project = request.project

    environments = [{"name": e.slug} for e in project.environments.order_by('id').all()]
    metrics = get_metrics_list(project)

    data = get_metric_data(
        project,
        request.GET.getlist('metric'),
        request.GET.getlist('environment')
    )

    context = {
        "project": project,
        "environments": environments,
        "metrics": metrics,
        "thresholds": list(project.metricthreshold_set.all().values(
            'name', 'value')),
        "data": data,
    }
    return render(request, 'squad/metrics.jinja2', context)
Exemplo n.º 9
0
def metrics(request, group_slug, project_slug):
    project = request.project
    env_qs = project.environments.order_by('id').all()
    environments = [{"name": e.slug} for e in env_qs]
    metrics = get_metrics_list(project)

    data = get_metric_data(project, request.GET.getlist('metric'),
                           request.GET.getlist('environment'))

    context = {
        "project":
        project,
        "environments":
        environments,
        "metrics":
        metrics,
        "thresholds":
        list(
            MetricThreshold.objects.filter(environment__in=env_qs).values(
                'name', 'value')),
        "data":
        data,
    }
    return render(request, 'squad/metrics.jinja2', context)
Exemplo n.º 10
0
def metrics(request, group_slug, project_slug):
    project = request.project
    env_qs = project.environments.order_by('id').all()
    environments = [{"name": e.slug} for e in env_qs]
    metrics = get_metrics_list(project)

    data = get_metric_data(
        project, request.GET.getlist('metric'),
        env_qs.filter(slug__in=request.GET.getlist('environment')))

    thresholds = []
    for t in MetricThreshold.objects.filter(environment__in=env_qs,
                                            value__isnull=False).only(
                                                'name', 'value'):
        thresholds.append({'name': t.name, 'value': t.value})

    context = {
        "project": project,
        "environments": environments,
        "metrics": metrics,
        "thresholds": thresholds,
        "data": data,
    }
    return render(request, 'squad/metrics.jinja2', context)