@@ -1074,3 +1074,85 @@ 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
+ 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