Skip to content

Commit ec49688

Browse files
authored
Merge pull request #60 from mattip/fix-tests
fix test failures and add a github action to run them
2 parents a96ef2b + f328b31 commit ec49688

10 files changed

Lines changed: 147 additions & 71 deletions

File tree

.github/workflows/tests.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
test:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- name: Set up Python
15+
uses: actions/setup-python@v5
16+
with:
17+
python-version: "3.x"
18+
19+
- name: Install dependencies
20+
run: pip install -e .
21+
22+
- name: Run tests
23+
run: python manage.py test codespeed --settings=codespeed.tests.settings

codespeed/commits/git.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def getlogs(endrev, startrev):
7979
logger.debug('Failed to get tag', exc_info=True)
8080

8181
tag = stdout.strip() if p.returncode == 0 else ""
82-
date = datetime.datetime.fromtimestamp(
82+
date = datetime.datetime.utcfromtimestamp(
8383
int(date_t)).strftime("%Y-%m-%d %H:%M:%S")
8484

8585
logs.append({

codespeed/commits/tests/test_git.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from datetime import datetime
22
from django.test import TestCase, override_settings
3-
from mock import Mock, patch
3+
from unittest.mock import Mock, patch
44

55
from codespeed.commits.git import getlogs
66
from codespeed.models import Project, Revision, Branch, Environment
@@ -48,7 +48,7 @@ def side_effect(cmd, *args, **kwargs):
4848

4949
# then
5050
expected = {
51-
'date': '2020-03-06 04:14:41',
51+
'date': '2020-03-06 10:14:41',
5252
'message': 'msg',
5353
'commitid': 'long_id',
5454
'author': 'author',
@@ -57,4 +57,4 @@ def side_effect(cmd, *args, **kwargs):
5757
'short_commit_id': 'id',
5858
'tag': 'tag',
5959
}
60-
self.assertEquals([expected], logs)
60+
self.assertEqual([expected], logs)

codespeed/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"""Default settings for Codespeed"""
33

44
## General default options ##
5-
WEBSITE_NAME = "PyPy's Speed Center" # This name will be used in the reports RSS feed
5+
WEBSITE_NAME = 'MySpeedSite' # This name will be used in the reports RSS feed
66

77
DEF_ENVIRONMENT = None # Name of the environment which should be selected as default
88

codespeed/tests/settings.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import os
2+
from codespeed.settings import *
3+
4+
DATABASES = {
5+
'default': {
6+
'ENGINE': 'django.db.backends.sqlite3',
7+
'NAME': ':memory:',
8+
}
9+
}
10+
11+
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
12+
SECRET_KEY = 'test-secret-key-not-for-production'
13+
USE_TZ = False
14+
TIME_ZONE = 'UTC'
15+
16+
INSTALLED_APPS = (
17+
'django.contrib.auth',
18+
'django.contrib.contenttypes',
19+
'django.contrib.sessions',
20+
'django.contrib.messages',
21+
'django.contrib.admin',
22+
'django.contrib.staticfiles',
23+
'codespeed',
24+
)
25+
26+
MIDDLEWARE = (
27+
'django.middleware.common.CommonMiddleware',
28+
'django.contrib.sessions.middleware.SessionMiddleware',
29+
'django.middleware.csrf.CsrfViewMiddleware',
30+
'django.contrib.auth.middleware.AuthenticationMiddleware',
31+
'django.contrib.messages.middleware.MessageMiddleware',
32+
)
33+
34+
ROOT_URLCONF = 'speed_pypy.urls'
35+
36+
TEMPLATES = [
37+
{
38+
'BACKEND': 'django.template.backends.django.DjangoTemplates',
39+
'DIRS': [],
40+
'APP_DIRS': True,
41+
'OPTIONS': {
42+
'context_processors': [
43+
'django.template.context_processors.debug',
44+
'django.template.context_processors.request',
45+
'django.contrib.auth.context_processors.auth',
46+
'django.contrib.messages.context_processors.messages',
47+
],
48+
},
49+
},
50+
]
51+
52+
STATIC_URL = '/static/'
53+
REPOSITORY_BASE_PATH = '/tmp/codespeed-test-repos'

codespeed/tests/test_auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22

3-
import mock
3+
from unittest import mock
44

55
from django.test import TestCase, override_settings
66
from django.http import HttpResponse

codespeed/tests/test_commits.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,6 @@ def setUp(self):
5858
project=self.pro).save()
5959

6060
def test_hg(self):
61-
response = self.client.get(reverse('displaylogs'), {'revisionid':1})
61+
with self.settings(REPOSITORY_BASE_PATH=os.path.dirname(self.hgdir)):
62+
response = self.client.get(reverse('displaylogs'), {'revisionid':1})
6263
assert response.status_code == 200, 'expected 200 got %d' % response.status_code

codespeed/tests/test_models.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def test_good_benchmark_change_beats_bad_average_trend(self):
104104
self.make_result(x, rev=s1, benchmark=b1)
105105
self.make_result(changes[-2] * .97, rev=s1, benchmark=b1)
106106
rep = self.make_report(s1)
107-
self.assertEquals('green', rep.colorcode)
107+
self.assertEqual('green', rep.colorcode)
108108
self.assertIn('b1', rep.summary)
109109

110110
def test_good_average_change_beats_bad_average_trend(self):
@@ -116,7 +116,7 @@ def test_good_average_change_beats_bad_average_trend(self):
116116
self.make_result(x, rev=s1, benchmark=b1)
117117
self.make_result(changes[-2] * .92, rev=s1, benchmark=b1)
118118
rep = self.make_report(s1)
119-
self.assertEquals('green', rep.colorcode)
119+
self.assertEqual('green', rep.colorcode)
120120
self.assertIn('Average', rep.summary)
121121

122122
def test_good_change_beats_good_trend(self):
@@ -156,7 +156,7 @@ def test_bad_change_beats_good_trend(self):
156156
rep = self.make_report(s1)
157157
self.assertIn('b1', rep.summary)
158158
self.assertNotIn('trend', rep.summary)
159-
self.assertEquals('red', rep.colorcode)
159+
self.assertEqual('red', rep.colorcode)
160160

161161
def test_bad_beats_good_change(self):
162162
b1 = self.make_bench('b1')
@@ -184,7 +184,7 @@ def test_bigger_bad_beats_smaller_bad(self):
184184

185185
rep = self.make_report(s2)
186186
self.assertIn('b1', rep.summary)
187-
self.assertEquals('red', rep.colorcode)
187+
self.assertEqual('red', rep.colorcode)
188188

189189
def test_multiple_quantities(self):
190190
b1 = self.make_bench('b1', quantity='Space', units='bytes')
@@ -195,8 +195,8 @@ def test_multiple_quantities(self):
195195
self.make_result(1.5, rev=s2, benchmark=b1)
196196

197197
rep = self.make_report(s2)
198-
self.assertRegexpMatches(rep.summary, '[sS]pace')
199-
self.assertEquals('red', rep.colorcode)
198+
self.assertRegex(rep.summary, '[sS]pace')
199+
self.assertEqual('red', rep.colorcode)
200200

201201
def make_result(self, value, rev=None, benchmark=None):
202202
from uuid import uuid4
@@ -280,18 +280,18 @@ def test_github_browsing_url(self):
280280

281281
# It should work with https:// as well as git:// urls
282282
self.github_project.save()
283-
self.assertEquals(self.github_project.commit_browsing_url,
283+
self.assertEqual(self.github_project.commit_browsing_url,
284284
'https://github.com/tobami/codespeed.git/'
285285
'commit/{commitid}')
286286

287287
self.github_project.repo_path = 'git://github.com/tobami/codespeed.git'
288288
self.github_project.save()
289-
self.assertEquals(self.github_project.commit_browsing_url,
289+
self.assertEqual(self.github_project.commit_browsing_url,
290290
'https://github.com/tobami/codespeed.git/'
291291
'commit/{commitid}')
292292

293293
# If filled in, commit browsing url should not change
294294
self.github_project.commit_browsing_url = 'https://example.com/{commitid}'
295295
self.github_project.save()
296-
self.assertEquals(self.github_project.commit_browsing_url,
296+
self.assertEqual(self.github_project.commit_browsing_url,
297297
'https://example.com/{commitid}')

codespeed/tests/test_settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def setUp(self):
1212
self.cs_setting_keys = [key for key in dir(default_settings) if key.isupper()]
1313

1414
def test_website_name(self):
15-
"""See if WEBSITENAME is set
15+
"""See if WEBSITE_NAME is set
1616
"""
1717
self.assertTrue(default_settings.WEBSITE_NAME)
1818
self.assertEqual(default_settings.WEBSITE_NAME, 'MySpeedSite',

0 commit comments

Comments
 (0)