Skip to content
This repository was archived by the owner on May 24, 2018. It is now read-only.

Commit 1cb57a2

Browse files
author
Kamil Mowinski
committed
[CDSK-969] add backend test
1 parent e2609d7 commit 1cb57a2

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

master/buildbot/test/unit/test_status_web_status_json.py

+82
Original file line numberDiff line numberDiff line change
@@ -1074,3 +1074,85 @@ def test_asDict_for_unknown_user(self, prepare_mybuilds):
10741074
builds = yield self.my_builds_json_resource.asDict(self.request)
10751075

10761076
self.assertEqual(builds, {'error': 'User "wolf" is unknown'})
1077+
1078+
1079+
class TestProjectsListJsonResource(unittest.TestCase):
1080+
def setUp(self):
1081+
self.request = mock.Mock()
1082+
1083+
def test_project_lists_return_one_project(self):
1084+
expected_projects = [
1085+
{'name': 'Katana'},
1086+
]
1087+
1088+
project = ProjectConfig(name="Katana", codebases=[])
1089+
1090+
master = fakemaster.make_master(wantDb=True, testcase=self)
1091+
master.getProjects = lambda: {'Katana': project}
1092+
master_status = setUpFakeMasterStatus(master)
1093+
1094+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1095+
1096+
projects = project_list_json_resource.asDict(self.request)
1097+
1098+
self.assertEqual(projects, expected_projects)
1099+
1100+
def test_project_lists_return_multiple_project(self):
1101+
expected_projects = [
1102+
{'name': 'ProjectA'},
1103+
{'name': 'ProjectB'},
1104+
{'name': 'ProjectC'},
1105+
]
1106+
1107+
project_a = ProjectConfig(name="ProjectA", codebases=[])
1108+
project_b = ProjectConfig(name="ProjectB", codebases=[])
1109+
project_c = ProjectConfig(name="ProjectC", codebases=[])
1110+
1111+
master = fakemaster.make_master(wantDb=True, testcase=self)
1112+
master.getProjects = lambda: {
1113+
'ProjectA': project_a,
1114+
'ProjectB': project_b,
1115+
'ProjectC': project_c,
1116+
}
1117+
master_status = setUpFakeMasterStatus(master)
1118+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1119+
1120+
projects = project_list_json_resource.asDict(self.request)
1121+
1122+
self.assertEqual(projects, expected_projects)
1123+
1124+
def test_project_lists_return_multiple_project_with_priority(self):
1125+
expected_projects = [
1126+
{'name': 'ProjectB'},
1127+
{'name': 'ProjectC'},
1128+
{'name': 'ProjectA'},
1129+
]
1130+
1131+
project_a = ProjectConfig(name="ProjectA", codebases=[], priority=10)
1132+
project_b = ProjectConfig(name="ProjectB", codebases=[], priority=1)
1133+
project_c = ProjectConfig(name="ProjectC", codebases=[], priority=5)
1134+
1135+
master = fakemaster.make_master(wantDb=True, testcase=self)
1136+
master.getProjects = lambda: {
1137+
'ProjectA': project_a,
1138+
'ProjectB': project_b,
1139+
'ProjectC': project_c,
1140+
}
1141+
master_status = setUpFakeMasterStatus(master)
1142+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1143+
1144+
projects = project_list_json_resource.asDict(self.request)
1145+
1146+
self.assertEqual(projects, expected_projects)
1147+
1148+
def test_project_lists_return_empty_list_when_no_project_available(self):
1149+
expected_projects = []
1150+
1151+
master = fakemaster.make_master(wantDb=True, testcase=self)
1152+
master.getProjects = lambda: {}
1153+
master_status = setUpFakeMasterStatus(master)
1154+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1155+
1156+
projects = project_list_json_resource.asDict(self.request)
1157+
1158+
self.assertEqual(projects, expected_projects)

0 commit comments

Comments
 (0)