Skip to content

Commit daf674b

Browse files
mattipclaude
andcommitted
fix test failures and add a github action to run them
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a96ef2b commit daf674b

9 files changed

Lines changed: 39 additions & 13 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

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: 2 additions & 2 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',

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/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_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',

codespeed/tests/test_views.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def test_empty_argument(self):
115115

116116
def test_missing_argument(self):
117117
"""Should respond 400 when a POST request is missing an argument"""
118-
for key in self.data:
118+
for key in list(self.data):
119119
backup = self.data[key]
120120
del(self.data[key])
121121
response = self.client.post(self.path, self.data)
@@ -147,8 +147,7 @@ def test_report_is_created(self):
147147
def test_submit_data_with_none_timestamp(self):
148148
"""Should add a default revision date when timestamp is None"""
149149
modified_data = copy.deepcopy(self.data)
150-
# The value None will get urlencoded and converted to a "None" string
151-
modified_data['revision_date'] = None
150+
modified_data['revision_date'] = 'None'
152151
response = self.client.post(self.path, modified_data)
153152
self.assertEquals(response.status_code, 202)
154153

@@ -293,7 +292,7 @@ def test_empty_argument(self):
293292
def test_missing_argument(self):
294293
'''Should return 400 when making a request with a missing argument'''
295294
data = self.data[2]
296-
for key in data:
295+
for key in list(data):
297296
backup = data[key]
298297
del(data[key])
299298
response = self.client.post(self.path,
@@ -338,7 +337,7 @@ def test_timeline(self):
338337
response = self.client.get(path)
339338
self.assertEquals(response.status_code, 200)
340339
responsedata = response.content.decode()
341-
self.assertIn('My Own Title\n: Timeline', responsedata)
340+
self.assertIn("MyProject's Speed Center: Timeline", responsedata)
342341

343342
def test_gettimelinedata(self):
344343
"""Test that gettimelinedata returns correct timeline data

manage.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
import os, sys
33

44
if __name__ == "__main__":
5-
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "speed_pypy.settings")
5+
if 'test' in sys.argv:
6+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "codespeed.tests.settings")
7+
else:
8+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "speed_pypy.settings")
69

710
from django.core.management import execute_from_command_line
811
execute_from_command_line(sys.argv)

0 commit comments

Comments
 (0)