Skip to content

Commit 805cd33

Browse files
authored
Merge pull request tobami#230 from tobami/django-111
Django 1.11 support
2 parents cd75999 + bbebb3a commit 805cd33

12 files changed

Lines changed: 109 additions & 105 deletions

File tree

.travis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
language: python
22
python:
33
- 2.7
4-
- 3.4
4+
- 3.5
55
branches:
66
only:
77
- master
88
env:
99
global:
1010
- DJANGO_SETTINGS_MODULE=sample_project.settings
1111
matrix:
12-
- DJANGO_VERSION=1.8.18
13-
- DJANGO_VERSION=1.9.13
12+
- DJANGO_VERSION=1.8
13+
- DJANGO_VERSION=1.11
1414
install:
1515
- pip install flake8
1616
- pip install -q Django==$DJANGO_VERSION

codespeed/templates/codespeed/base.html

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
{% load static %}
12
<!DOCTYPE html>
23
<html>
34
<head>
45
<title>{% block title %}MyProject's Speed Center{% endblock %}</title>
56
<meta name="description" content="{% block description %}A performance analysis tool for software projects. It shows performance regresions and allows comparing different applications or implementations{% endblock %}">
67
<meta name="keywords" content="performance, test, plots, charts">
78
<meta charset="UTF-8">
8-
<link href="{{ STATIC_URL }}css/main.css" rel="stylesheet" type="text/css">
9+
<link href="{% static 'css/main.css' %}" rel="stylesheet" type="text/css">
910
{% block extra_head %}{% endblock %}
1011
</head>
1112
<body>
@@ -15,7 +16,7 @@
1516
{% block page_header %}
1617
<a href="{% url 'home' %}">
1718
{% block logo %}
18-
<img src="{{ STATIC_URL }}images/logo.png" height="48" alt="logo"/>
19+
<img src="{% static 'images/logo.png' %}" height="48" alt="logo"/>
1920
{% endblock logo %}
2021
</a>
2122
<h2>{% block page_title %}SPEED CENTER{% endblock page_title %}</h2>
@@ -48,11 +49,8 @@ <h2>{% block page_title %}SPEED CENTER{% endblock page_title %}</h2>
4849
{% endblock %}
4950
</div>
5051

51-
<script type='text/javascript'>
52-
var STATIC_URL = '{{ STATIC_URL }}';
53-
</script>
54-
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery-1.12.3.min.js"></script>
55-
<script type="text/javascript" src="{{ STATIC_URL }}js/codespeed.js"></script>
52+
<script type="text/javascript" src="{% static 'js/jquery-1.12.3.min.js' %}"></script>
53+
<script type="text/javascript" src="{% static 'js/codespeed.js' %}"></script>
5654
{% block extra_body %}{% endblock %}
5755
</body>
5856
</html>

codespeed/templates/codespeed/changes.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
{% extends "codespeed/base_site.html" %}
22

3+
{% load static %}
4+
35
{% block title %}{{ block.super }}: Changes{% endblock %}
46
{% block description %}{% if pagedesc %}{{ pagedesc }}{% else %}{{ block.super }}{% endif %}{% endblock %}
57

@@ -65,8 +67,8 @@
6567

6668
{% block extra_body %}
6769
{{ block.super }}
68-
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.tablesorter.min.js"></script>
69-
<script type="text/javascript" src="{{ STATIC_URL }}js/changes.js"></script>
70+
<script type="text/javascript" src="{% static 'js/jquery.tablesorter.min.js' %}"></script>
71+
<script type="text/javascript" src="{% static 'js/changes.js' %}"></script>
7072
<script type="text/javascript">
7173
var TIMELINE_URL = "{% url "timeline" %}";
7274

codespeed/templates/codespeed/comparison.html

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
{% extends "codespeed/base_site.html" %}
22

3+
{% load static %}
4+
35
{% block title %}{{ block.super }}: Comparison{% endblock %}
46

57
{% block extra_head %}
68
{{ block.super }}
7-
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}js/jqplot/jquery.jqplot.min.css" />
9+
<link rel="stylesheet" type="text/css" href="{% static 'js/jqplot/jquery.jqplot.min.css' %}" />
810
{% endblock %}
911

1012
{% block navigation %}
@@ -80,14 +82,14 @@
8082

8183
{% block extra_body %}
8284
{{ block.super }}
83-
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="{{ STATIC_URL }}js/jqplot/excanvas.min.js"></script><![endif]-->
84-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jquery.jqplot.min.js"></script>
85-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.barRenderer.min.js"></script>
86-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.categoryAxisRenderer.min.js"></script>
87-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.canvasTextRenderer.min.js"></script>
88-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.canvasAxisTickRenderer.min.js"></script>
89-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.canvasAxisLabelRenderer.min.js"></script>
90-
<script type="text/javascript" src="{{ STATIC_URL }}js/comparison.js"></script>
85+
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="{% static 'js/jqplot/excanvas.min.js' %}"></script><![endif]-->
86+
<script type="text/javascript" src="{% static 'js/jqplot/jquery.jqplot.min.js' %}"></script>
87+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.barRenderer.min.js' %}"></script>
88+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.categoryAxisRenderer.min.js' %}"></script>
89+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.canvasTextRenderer.min.js' %}"></script>
90+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.canvasAxisTickRenderer.min.js' %}"></script>
91+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.canvasAxisLabelRenderer.min.js' %}"></script>
92+
<script type="text/javascript" src="{% static 'js/comparison.js' %}"></script>
9193

9294
<script type="text/javascript">
9395
$(function() {

codespeed/templates/codespeed/timeline.html

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
{% extends "codespeed/base_site.html" %}
22

3+
{% load static %}
4+
35
{% block title %}{{ block.super }}: Timeline{% endblock %}
46
{% block description %}{% if pagedesc %}{{ pagedesc }}{% else %}{{ block.super }}{% endif %}{% endblock %}
57

68
{% block extra_head %}
79
{{ block.super }}
8-
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/timeline.css" />
9-
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}js/jqplot/jquery.jqplot.min.css" />
10+
<link rel="stylesheet" type="text/css" href="{% static '/css/timeline.css' %}" />
11+
<link rel="stylesheet" type="text/css" href="{% static 'js/jqplot/jquery.jqplot.min.css' %}" />
1012
{% endblock %}
1113

1214
{% block navigation %}
@@ -106,19 +108,19 @@
106108

107109
{% block extra_body %}
108110
{{ block.super }}
109-
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="{{ STATIC_URL }}js/jqplot/excanvas.min.js"></script><![endif]-->
110-
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.address-1.6.min.js?autoUpdate=0"></script>
111-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jquery.jqplot.min.js"></script>
112-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.cursor.min.js"></script>
113-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.highlighter.min.js"></script>
114-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.dateAxisRenderer.min.js"></script>
115-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.categoryAxisRenderer.min.js"></script>
116-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.canvasTextRenderer.min.js"></script>
117-
<script type="text/javascript" src="{{ STATIC_URL }}js/jqplot/jqplot.canvasAxisLabelRenderer.min.js"></script>
111+
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="{% static 'js/jqplot/excanvas.min.js' %}"></script><![endif]-->
112+
<script type="text/javascript" src="{% static 'js/jquery.address-1.6.min.js' %}?autoUpdate=0"></script>
113+
<script type="text/javascript" src="{% static 'js/jqplot/jquery.jqplot.min.js' %}"></script>
114+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.cursor.min.js' %}"></script>
115+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.highlighter.min.js' %}"></script>
116+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.dateAxisRenderer.min.js' %}"></script>
117+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.categoryAxisRenderer.min.js' %}"></script>
118+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.canvasTextRenderer.min.js' %}"></script>
119+
<script type="text/javascript" src="{% static 'js/jqplot/jqplot.canvasAxisLabelRenderer.min.js' %}"></script>
118120
<script type="text/javascript">
119121
var CHANGES_URL = "{% url "changes" %}";
120122
</script>
121-
<script type="text/javascript" src="{{ STATIC_URL }}js/timeline.js"></script>
123+
<script type="text/javascript" src="{% static 'js/timeline.js' %}"></script>
122124
<script type="text/javascript">
123125
$(function() {
124126
Timeline.init({
@@ -135,4 +137,3 @@
135137
});
136138
</script>
137139
{% endblock %}
138-

codespeed/tests/test_views.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
class TestAddResult(TestCase):
1515

1616
def setUp(self):
17-
self.path = reverse('codespeed.views.add_result')
17+
self.path = reverse('add-result')
1818
self.e = Environment.objects.create(name='Dual Core',
1919
cpu='Core 2 Duo 8200')
2020
temp = datetime.today()
@@ -167,12 +167,13 @@ def test_add_result_with_no_project(self):
167167
class TestAddJSONResults(TestCase):
168168

169169
def setUp(self):
170-
self.path = reverse('codespeed.views.add_json_results')
170+
self.path = reverse('add-json-results')
171171
self.e = Environment(name='bigdog', cpu='Core 2 Duo 8200')
172172
self.e.save()
173173
temp = datetime.today()
174174
self.cdate = datetime(
175-
temp.year, temp.month, temp.day, temp.hour, temp.minute, temp.second)
175+
temp.year, temp.month, temp.day, temp.hour, temp.minute,
176+
temp.second)
176177

177178
self.data = [
178179
{'commitid': '123',
@@ -332,10 +333,17 @@ def test_fixture(self):
332333
results = benchmarks[0].results.all()
333334
self.assertEquals(len(results), 8)
334335

336+
def test_timeline(self):
337+
path = reverse('timeline')
338+
response = self.client.get(path)
339+
self.assertEquals(response.status_code, 200)
340+
responsedata = response.content.decode()
341+
self.assertIn('My Own Title\n: Timeline', responsedata)
342+
335343
def test_gettimelinedata(self):
336344
"""Test that gettimelinedata returns correct timeline data
337345
"""
338-
path = reverse('codespeed.views.gettimelinedata')
346+
path = reverse('gettimelinedata')
339347
data = {
340348
"exe": "1,2",
341349
"base": "2+4",
@@ -382,16 +390,16 @@ def setUp(self):
382390
'environment': 'Dual Core',
383391
'result_value': 200,
384392
}
385-
resp = self.client.post(reverse('codespeed.views.add_result'),
393+
resp = self.client.post(reverse('add-result'),
386394
self.data)
387395
self.assertEqual(resp.status_code, 202)
388396
self.data['commitid'] = "abcd2"
389397
self.data['result_value'] = 150
390-
self.client.post(reverse('codespeed.views.add_result'), self.data)
398+
self.client.post(reverse('add-result'), self.data)
391399
self.assertEqual(resp.status_code, 202)
392400

393401
def test_reports(self):
394-
response = self.client.get(reverse('codespeed.views.reports'))
402+
response = self.client.get(reverse('reports'))
395403

396404
self.assertEqual(response.status_code, 200)
397405
content = response.content.decode()
@@ -400,7 +408,7 @@ def test_reports(self):
400408
self.assertIn(self.data['commitid'], content)
401409

402410
def test_reports_post_returns_405(self):
403-
response = self.client.post(reverse('codespeed.views.reports'), {})
411+
response = self.client.post(reverse('reports'), {})
404412

405413
self.assertEqual(response.status_code, 405)
406414

codespeed/urls.py

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
# -*- coding: utf-8 -*-
2-
from django.conf.urls import patterns, url
2+
from django.conf.urls import url
33
from django.views.generic import TemplateView
44

5+
from codespeed import views
56
from codespeed.feeds import LatestEntries, LatestSignificantEntries
67

7-
8-
urlpatterns = patterns('',
8+
urlpatterns = [
99
url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
10-
url(r'^about/$', TemplateView.as_view(template_name='about.html'), name='about'),
10+
url(r'^about/$',
11+
TemplateView.as_view(template_name='about.html'), name='about'),
1112
# RSS for reports
1213
url(r'^feeds/latest/$', LatestEntries(), name='latest-results'),
1314
url(r'^feeds/latest_significant/$', LatestSignificantEntries(),
1415
name='latest-significant-results'),
15-
)
16+
]
1617

17-
urlpatterns += patterns('codespeed.views',
18-
url(r'^reports/$', 'reports', name='reports'),
19-
url(r'^changes/$', 'changes', name='changes'),
20-
url(r'^changes/table/$', 'getchangestable', name='getchangestable'),
21-
url(r'^changes/logs/$', 'displaylogs', name='displaylogs'),
22-
url(r'^timeline/$', 'timeline', name='timeline'),
23-
url(r'^timeline/json/$', 'gettimelinedata', name='gettimelinedata'),
24-
url(r'^comparison/$', 'comparison', name='comparison'),
25-
url(r'^comparison/json/$', 'getcomparisondata', name='getcomparisondata'),
26-
url(r'^makeimage/$', 'makeimage', name='makeimage'),
27-
)
18+
urlpatterns += [
19+
url(r'^reports/$', views.reports, name='reports'),
20+
url(r'^changes/$', views.changes, name='changes'),
21+
url(r'^changes/table/$', views.getchangestable, name='getchangestable'),
22+
url(r'^changes/logs/$', views.displaylogs, name='displaylogs'),
23+
url(r'^timeline/$', views.timeline, name='timeline'),
24+
url(r'^timeline/json/$', views.gettimelinedata, name='gettimelinedata'),
25+
url(r'^comparison/$', views.comparison, name='comparison'),
26+
url(r'^comparison/json/$', views.getcomparisondata, name='getcomparisondata'),
27+
url(r'^makeimage/$', views.makeimage, name='makeimage'),
28+
]
2829

29-
urlpatterns += patterns('codespeed.views',
30+
urlpatterns += [
3031
# URLs for adding results
31-
url(r'^result/add/json/$', 'add_json_results'),
32-
url(r'^result/add/$', 'add_result'),
33-
)
32+
url(r'^result/add/json/$', views.add_json_results, name='add-json-results'),
33+
url(r'^result/add/$', views.add_result, name='add-result'),
34+
]

codespeed/views.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from django.shortcuts import get_object_or_404, render_to_response
1515
from django.views.decorators.http import require_GET, require_POST
1616
from django.views.decorators.csrf import csrf_exempt
17-
from django.template import RequestContext
1817

1918
from .auth import basic_auth_required
2019
from .models import (Environment, Report, Project, Revision, Result,
@@ -36,7 +35,7 @@ def no_environment_error(request):
3635
'message': ('You need to configure at least one Environment. '
3736
'Please go to the '
3837
'<a href="%s">admin interface</a>' % admin_url)
39-
}, context_instance=RequestContext(request))
38+
})
4039

4140

4241
def no_default_project_error(request):
@@ -46,19 +45,19 @@ def no_default_project_error(request):
4645
'default (checked "Track changes" field).<br />'
4746
'Please go to the '
4847
'<a href="%s">admin interface</a>' % admin_url)
49-
}, context_instance=RequestContext(request))
48+
})
5049

5150

5251
def no_executables_error(request):
5352
return render_to_response('codespeed/nodata.html', {
5453
'message': 'There needs to be at least one executable'
55-
}, context_instance=RequestContext(request))
54+
})
5655

5756

5857
def no_data_found(request):
5958
return render_to_response('codespeed/nodata.html', {
6059
'message': 'No data found'
61-
}, context_instance=RequestContext(request))
60+
})
6261

6362

6463
@require_GET
@@ -223,7 +222,7 @@ def comparison(request):
223222
'selectedbaseline': selectedbaseline,
224223
'selectedchart': selectedchart,
225224
'selecteddirection': selecteddirection
226-
}, context_instance=RequestContext(request))
225+
})
227226

228227

229228
@require_GET
@@ -503,7 +502,7 @@ def timeline(request):
503502
'defaultquarts': defaultquarts,
504503
'defaultextr': defaultextr,
505504
'use_median_bands': use_median_bands,
506-
}, context_instance=RequestContext(request))
505+
})
507506

508507

509508
@require_GET
@@ -577,7 +576,7 @@ def getchangestable(request):
577576
'env': environment,
578577
'prev': prevrev,
579578
'next': nextrev,
580-
}, context_instance=RequestContext(request))
579+
})
581580

582581

583582
@require_GET
@@ -688,7 +687,7 @@ def changes(request):
688687
'projectmatrix': projectmatrix,
689688
'revisionlists': revisionlists,
690689
'trends': trends,
691-
}, context_instance=RequestContext(request))
690+
})
692691

693692

694693
@require_GET
@@ -702,8 +701,7 @@ def reports(request):
702701
colorcode__in=('red', 'green')
703702
).order_by('-revision__date')[:10]
704703

705-
return render_to_response('codespeed/reports.html', context,
706-
context_instance=RequestContext(request))
704+
return render_to_response('codespeed/reports.html', context)
707705

708706

709707
@require_GET
@@ -753,8 +751,7 @@ def displaylogs(request):
753751
{
754752
'error': error, 'logs': logs,
755753
'show_email_address': settings.SHOW_AUTHOR_EMAIL_ADDRESS
756-
},
757-
context_instance=RequestContext(request))
754+
})
758755

759756

760757
@csrf_exempt

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Django>=1.6,<1.10
1+
Django>=1.7,<2.0
22
isodate>=0.4.7,<0.6
33
matplotlib>=1.4.3,<2.0

0 commit comments

Comments
 (0)