Skip to content

Commit 393d0cd

Browse files
committed
Add tests for getcomparisonexes() function and verify it correctly
handles custom (aka non "default") default project branches.
1 parent c247e27 commit 393d0cd

1 file changed

Lines changed: 99 additions & 0 deletions

File tree

codespeed/tests/test_views_data.py

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from codespeed.models import Project, Executable, Branch, Revision
55
from codespeed.views import getbaselineexecutables
6+
from codespeed.views import getcomparisonexes
67

78

89
class TestGetBaselineExecutables(TestCase):
@@ -38,3 +39,101 @@ def test_get_baseline_executables(self):
3839
Revision.objects.create(commitid='3', branch=self.branch)
3940
result = getbaselineexecutables()
4041
self.assertEqual(len(result), 3)
42+
43+
44+
class TestGetComparisonExes(TestCase):
45+
def setUp(self):
46+
self.project = Project.objects.create(name='Test')
47+
self.executable_1 = Executable.objects.create(
48+
name='TestExecutable1', project=self.project)
49+
self.executable_2 = Executable.objects.create(
50+
name='TestExecutable2', project=self.project)
51+
self.branch_master = Branch.objects.create(name='master',
52+
project=self.project)
53+
self.branch_custom = Branch.objects.create(name='custom',
54+
project=self.project)
55+
56+
self.revision_1_master = Revision.objects.create(
57+
branch=self.branch_master, commitid='1')
58+
self.revision_1_custom = Revision.objects.create(
59+
branch=self.branch_custom, commitid='1')
60+
61+
def test_get_comparisionexes_master_default_branch(self):
62+
# Standard "master" default branch is used
63+
self.project.default_branch = 'master'
64+
self.project.save()
65+
66+
executables, exe_keys = getcomparisonexes()
67+
self.assertEqual(len(executables), 1)
68+
self.assertEqual(len(executables[self.project]), 4)
69+
self.assertEqual(len(exe_keys), 4)
70+
71+
self.assertEqual(executables[self.project][0]['executable'],
72+
self.executable_1)
73+
self.assertEqual(executables[self.project][0]['revision'],
74+
self.revision_1_master)
75+
self.assertEqual(executables[self.project][0]['key'],
76+
'1+L+master')
77+
self.assertEqual(executables[self.project][0]['name'],
78+
'TestExecutable1 latest')
79+
self.assertEqual(executables[self.project][0]['revision'],
80+
self.revision_1_master)
81+
82+
self.assertEqual(executables[self.project][1]['key'],
83+
'2+L+master')
84+
self.assertEqual(executables[self.project][1]['name'],
85+
'TestExecutable2 latest')
86+
87+
self.assertEqual(executables[self.project][2]['key'],
88+
'1+L+custom')
89+
self.assertEqual(executables[self.project][2]['name'],
90+
'TestExecutable1 latest in branch \'custom\'')
91+
92+
self.assertEqual(executables[self.project][3]['key'],
93+
'2+L+custom')
94+
self.assertEqual(executables[self.project][3]['name'],
95+
'TestExecutable2 latest in branch \'custom\'')
96+
97+
self.assertEqual(exe_keys[0], '1+L+master')
98+
self.assertEqual(exe_keys[1], '2+L+master')
99+
100+
def test_get_comparisionexes_custom_default_branch(self):
101+
# Custom default branch is used
102+
self.project.default_branch = 'custom'
103+
self.project.save()
104+
105+
executables, exe_keys = getcomparisonexes()
106+
self.assertEqual(len(executables), 1)
107+
self.assertEqual(len(executables[self.project]), 4)
108+
self.assertEqual(len(exe_keys), 4)
109+
110+
self.assertEqual(executables[self.project][0]['executable'],
111+
self.executable_1)
112+
self.assertEqual(executables[self.project][0]['revision'],
113+
self.revision_1_master)
114+
self.assertEqual(executables[self.project][0]['key'],
115+
'1+L+master')
116+
self.assertEqual(executables[self.project][0]['name'],
117+
'TestExecutable1 latest in branch \'master\'')
118+
self.assertEqual(executables[self.project][0]['revision'],
119+
self.revision_1_master)
120+
121+
self.assertEqual(executables[self.project][1]['key'],
122+
'2+L+master')
123+
self.assertEqual(executables[self.project][1]['name'],
124+
'TestExecutable2 latest in branch \'master\'')
125+
126+
self.assertEqual(executables[self.project][2]['key'],
127+
'1+L+custom')
128+
self.assertEqual(executables[self.project][2]['name'],
129+
'TestExecutable1 latest')
130+
131+
self.assertEqual(executables[self.project][3]['key'],
132+
'2+L+custom')
133+
self.assertEqual(executables[self.project][3]['name'],
134+
'TestExecutable2 latest')
135+
136+
self.assertEqual(exe_keys[0], '1+L+master')
137+
self.assertEqual(exe_keys[1], '2+L+master')
138+
self.assertEqual(exe_keys[2], '1+L+custom')
139+
self.assertEqual(exe_keys[3], '2+L+custom')

0 commit comments

Comments
 (0)