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

Commit 3f4a950

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

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

master/buildbot/test/unit/test_status_web_status_json.py

+87
Original file line numberDiff line numberDiff line change
@@ -1074,3 +1074,90 @@ 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+
master.status = master_status
1095+
1096+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1097+
1098+
projects = project_list_json_resource.asDict(self.request)
1099+
1100+
self.assertEqual(projects, expected_projects)
1101+
1102+
def test_project_lists_return_multiple_project(self):
1103+
expected_projects = [
1104+
{'name': 'ProjectA'},
1105+
{'name': 'ProjectB'},
1106+
{'name': 'ProjectC'},
1107+
]
1108+
1109+
project_a = ProjectConfig(name="ProjectA", codebases=[])
1110+
project_b = ProjectConfig(name="ProjectB", codebases=[])
1111+
project_c = ProjectConfig(name="ProjectC", codebases=[])
1112+
1113+
master = fakemaster.make_master(wantDb=True, testcase=self)
1114+
master.getProjects = lambda: {
1115+
'ProjectA': project_a,
1116+
'ProjectB': project_b,
1117+
'ProjectC': project_c,
1118+
}
1119+
master_status = setUpFakeMasterStatus(master)
1120+
master.status = master_status
1121+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1122+
1123+
projects = project_list_json_resource.asDict(self.request)
1124+
1125+
self.assertEqual(projects, expected_projects)
1126+
1127+
def test_project_lists_return_multiple_project_with_priority(self):
1128+
expected_projects = [
1129+
{'name': 'ProjectB'},
1130+
{'name': 'ProjectC'},
1131+
{'name': 'ProjectA'},
1132+
]
1133+
1134+
project_a = ProjectConfig(name="ProjectA", codebases=[], priority=10)
1135+
project_b = ProjectConfig(name="ProjectB", codebases=[], priority=1)
1136+
project_c = ProjectConfig(name="ProjectC", codebases=[], priority=5)
1137+
1138+
master = fakemaster.make_master(wantDb=True, testcase=self)
1139+
master.getProjects = lambda: {
1140+
'ProjectA': project_a,
1141+
'ProjectB': project_b,
1142+
'ProjectC': project_c,
1143+
}
1144+
master_status = setUpFakeMasterStatus(master)
1145+
master.status = master_status
1146+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1147+
1148+
projects = project_list_json_resource.asDict(self.request)
1149+
1150+
self.assertEqual(projects, expected_projects)
1151+
1152+
def test_project_lists_return_empty_list_when_no_project_available(self):
1153+
expected_projects = []
1154+
1155+
master = fakemaster.make_master(wantDb=True, testcase=self)
1156+
master.getProjects = lambda: {}
1157+
master_status = setUpFakeMasterStatus(master)
1158+
master.status = master_status
1159+
project_list_json_resource = status_json.ProjectsListJsonResource(master_status)
1160+
1161+
projects = project_list_json_resource.asDict(self.request)
1162+
1163+
self.assertEqual(projects, expected_projects)

0 commit comments

Comments
 (0)