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)
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)
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)
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')
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)
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)
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)
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)
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)
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)