|
6 | 6 | import django |
7 | 7 |
|
8 | 8 | from django.core.urlresolvers import reverse |
| 9 | +from django.core.exceptions import ValidationError |
9 | 10 | from django.http import HttpResponse, Http404, HttpResponseBadRequest,\ |
10 | 11 | HttpResponseNotFound |
11 | 12 | from django.shortcuts import get_object_or_404, render_to_response |
|
20 | 21 | getdefaultexecutable, getcomparisonexes) |
21 | 22 | from .results import save_result, create_report_if_enough_data |
22 | 23 | from . import commits |
| 24 | +from .validators import validate_results_request |
23 | 25 |
|
24 | 26 | import cStringIO |
25 | 27 | from matplotlib.figure import Figure |
@@ -746,41 +748,6 @@ def django_has_content_type(): |
746 | 748 | (django.VERSION[0] == 1 and django.VERSION[1] >= 6)) |
747 | 749 |
|
748 | 750 |
|
749 | | -def validate_results_request(data): |
750 | | - """ |
751 | | - Validates that a result request dictionary has all needed parameters |
752 | | -
|
753 | | - It returns a tuple |
754 | | - "", False when no errors where found |
755 | | - Error_message, True when there is an error |
756 | | - """ |
757 | | - mandatory_data = [ |
758 | | - 'env', |
759 | | - 'proj', |
760 | | - 'branch', |
761 | | - 'exe', |
762 | | - 'ben', |
763 | | - ] |
764 | | - |
765 | | - for key in mandatory_data: |
766 | | - if key not in data: |
767 | | - return 'Key "' + key + '" missing from GET request', True |
768 | | - elif data[key] == '': |
769 | | - return 'Value for key "' + key + '" empty in GET request', True |
770 | | - |
771 | | - # Check that 'revs' is the correct format (if it exists) |
772 | | - if 'revs' in data: |
773 | | - try: |
774 | | - rev_value = int(data['revs']) |
775 | | - except: |
776 | | - return 'Value for key "revs" is not an integer', True |
777 | | - if rev_value <= 0: |
778 | | - return 'Value for key "revs" should be a strictly positive '\ |
779 | | - 'integer', True |
780 | | - |
781 | | - return '', False |
782 | | - |
783 | | - |
784 | 751 | def get_benchmark_results(data): |
785 | 752 | try: |
786 | 753 | environment = Environment.objects.get(name=data['env']) |
@@ -903,10 +870,10 @@ def get_benchmark_results(data): |
903 | 870 | def makeimage(request): |
904 | 871 | data = request.GET |
905 | 872 |
|
906 | | - err_msg, err = validate_results_request(data) |
907 | | - |
908 | | - if err: |
909 | | - return HttpResponseBadRequest(err_msg) |
| 873 | + try: |
| 874 | + validate_results_request(data) |
| 875 | + except ValidationError as err: |
| 876 | + return HttpResponseBadRequest(str(err)) |
910 | 877 |
|
911 | 878 | result_data, error = get_benchmark_results(data) |
912 | 879 |
|
|
0 commit comments