@@ -147,6 +147,86 @@ async def test_resource_class_filtering(
147147 assert len (res .json [0 ]["classes" ]) == len (new_classes )
148148
149149
150+ @pytest .mark .asyncio
151+ async def test_resource_class_ordering (
152+ sanic_client : SanicASGITestClient , admin_headers : dict [str , str ], valid_resource_pool_payload : dict [str , Any ]
153+ ) -> None :
154+ new_classes = [
155+ {
156+ "name" : "resource class 5" ,
157+ "cpu" : 0.1 ,
158+ "memory" : 1 ,
159+ "gpu" : 1 ,
160+ "max_storage" : 1 ,
161+ "default" : False ,
162+ "default_storage" : 1 ,
163+ "node_affinities" : [],
164+ "tolerations" : [],
165+ },
166+ {
167+ "name" : "resource class 4" ,
168+ "cpu" : 9.0 ,
169+ "memory" : 1 ,
170+ "gpu" : 0 ,
171+ "max_storage" : 1 ,
172+ "default" : False ,
173+ "default_storage" : 1 ,
174+ "node_affinities" : [],
175+ "tolerations" : [],
176+ },
177+ {
178+ "name" : "resource class 3" ,
179+ "cpu" : 0.1 ,
180+ "memory" : 100 ,
181+ "gpu" : 0 ,
182+ "max_storage" : 1 ,
183+ "default" : False ,
184+ "default_storage" : 1 ,
185+ "node_affinities" : [],
186+ "tolerations" : [],
187+ },
188+ {
189+ "name" : "resource class 2" ,
190+ "cpu" : 0.1 ,
191+ "memory" : 1 ,
192+ "gpu" : 0 ,
193+ "max_storage" : 100 ,
194+ "default" : False ,
195+ "default_storage" : 1 ,
196+ "node_affinities" : [],
197+ "tolerations" : [],
198+ },
199+ {
200+ "name" : "resource class 1" ,
201+ "cpu" : 0.1 ,
202+ "memory" : 1 ,
203+ "gpu" : 0 ,
204+ "max_storage" : 10 ,
205+ "default" : True ,
206+ "default_storage" : 1 ,
207+ "node_affinities" : [],
208+ "tolerations" : [],
209+ },
210+ ]
211+ payload = valid_resource_pool_payload
212+ payload ["quota" ] = {"cpu" : 100 , "memory" : 100 , "gpu" : 100 }
213+ payload ["classes" ] = new_classes
214+ _ , res = await create_rp (payload , sanic_client )
215+ assert res .status_code == 201
216+ _ , res = await sanic_client .get (
217+ "/api/data/resource_pools" ,
218+ params = {"cpu" : 1 , "gpu" : 1 },
219+ headers = admin_headers ,
220+ )
221+ assert res .status_code == 200
222+ assert len (res .json ) == 1
223+ rp_filtered = res .json [0 ]
224+
225+ new_classes_names = [c ["name" ] for c in new_classes ]
226+ returned_names = [c ["name" ] for c in rp_filtered ["classes" ]]
227+ assert new_classes_names [::- 1 ] == returned_names # classes should show up in reverse order
228+
229+
150230@pytest .mark .asyncio
151231async def test_get_single_pool_quota (
152232 sanic_client : SanicASGITestClient , valid_resource_pool_payload : dict [str , Any ], admin_headers : dict [str , str ]
0 commit comments