12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import csv
- from django.contrib import messages
- from django.core.urlresolvers import reverse
- from django.http import HttpResponseRedirect, HttpResponse
- from django.shortcuts import render
- from .testmodels import TestRun
- from mongoengine import ValidationError
- from datetime import datetime
- import logging
- logger = logging.getLogger(__name__)
- def index(request):
- tests = TestRun.objects().order_by('-created')
- return render(request, 'loadtests/index.html', {'tests': tests})
- def testsetup(request, testName):
- test = TestRun()
- test.name = testName
- test.created = datetime.now()
- test = test.save()
- response = HttpResponse('{ "testId": ' + str(test.id) + ' }', content_type='json')
- return response
- def deletetest(request, id):
- try:
- test = TestRun.objects(id=id).first()
- except (IndexError, ValidationError) as e:
- return handleException(request, id, e)
- test.delete()
- return HttpResponseRedirect(reverse('loadtests:home'))
- def createcsv(request, id):
- test = TestRun.objects(id=id).first()
- # Create the HttpResponse object with the appropriate CSV header.
- response = HttpResponse(content_type='text/csv')
- filename = '%s_%s.csv' % (test.name, test.volumeId)
- response['Content-Disposition'] = 'attachment; filename="%s"' % (filename)
- writer = csv.writer(response)
- for result in test.results:
- writer.writerow([result.durationInSec])
- writer.writerow(['average', test.get_average])
- return response
- def handleException(request, id, e):
- if type(e) is ValidationError:
- messages.error(request, '%s not a valid ObjectId' % id)
- elif type(e) is IndexError:
- messages.error(request, 'object for %s not found in db' % id)
- return HttpResponseRedirect(reverse('loadtests:home'))
|