@@ -1074,3 +1074,90 @@ def test_asDict_for_unknown_user(self, prepare_mybuilds):
1074
1074
builds = yield self .my_builds_json_resource .asDict (self .request )
1075
1075
1076
1076
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