@@ -222,6 +222,17 @@ def get_contents_of_bound_volume(runner):
222
222
Tests .cleanup (runner )
223
223
return ls
224
224
225
+ def assert_order (text , first , second ):
226
+ index1 = text .find (first )
227
+ index2 = text .find (second )
228
+
229
+ assert index1 != - 1 and index2 != - 1 , \
230
+ Tests .assertion_info (f"stdout contain the container names '{ first } ' and '{ second } '." , \
231
+ f"stdout doesn't contain '{ first } ' and/or '{ second } '." )
232
+
233
+ assert index1 < index2 , Tests .assertion_info (f'{ first } should start first, \
234
+ because it is a dependency of { second } .' , f'{ second } started first' )
235
+
225
236
# depends_on: [array] (optional)
226
237
# Array of container names to express dependencies
227
238
def test_depends_on_order ():
@@ -236,20 +247,85 @@ def test_depends_on_order():
236
247
runner .cleanup ()
237
248
238
249
# Expected order: test-container-2, test-container-4, test-container-3, test-container-1
239
- assert_order (out .getvalue (), " test-container-2" , " test-container-4" )
240
- assert_order (out .getvalue (), " test-container-4" , " test-container-3" )
241
- assert_order (out .getvalue (), " test-container-3" , " test-container-1" )
250
+ assert_order (out .getvalue (), ' test-container-2' , ' test-container-4' )
251
+ assert_order (out .getvalue (), ' test-container-4' , ' test-container-3' )
252
+ assert_order (out .getvalue (), ' test-container-3' , ' test-container-1' )
242
253
243
- def assert_order (text , first , second ):
244
- index1 = text .find (first )
245
- index2 = text .find (second )
246
254
247
- assert index1 != - 1 and index2 != - 1 , \
248
- Tests .assertion_info (f"stdout contain the container names '{ first } ' and '{ second } '." , \
249
- f"stdout doesn't contain '{ first } ' and/or '{ second } '." )
250
-
251
- assert index1 < index2 , Tests .assertion_info (f'{ first } should start first, \
252
- because it is a dependency of { second } .' , f'{ second } started first' )
255
+ def test_depends_on_huge ():
256
+ out = io .StringIO ()
257
+ err = io .StringIO ()
258
+ runner = Tests .setup_runner (usage_scenario = 'depends_on_huge.yml' , dry_run = True )
259
+
260
+ with redirect_stdout (out ), redirect_stderr (err ):
261
+ try :
262
+ Tests .run_until (runner , 'setup_services' )
263
+ finally :
264
+ runner .cleanup ()
265
+
266
+ # For test-container-20
267
+ assert_order (out .getvalue (), 'test-container-16' , 'test-container-20' )
268
+ assert_order (out .getvalue (), 'test-container-15' , 'test-container-20' )
269
+
270
+ # For test-container-19
271
+ assert_order (out .getvalue (), 'test-container-14' , 'test-container-19' )
272
+ assert_order (out .getvalue (), 'test-container-13' , 'test-container-19' )
273
+
274
+ # For test-container-18
275
+ assert_order (out .getvalue (), 'test-container-12' , 'test-container-18' )
276
+ assert_order (out .getvalue (), 'test-container-11' , 'test-container-18' )
277
+
278
+ # For test-container-17
279
+ assert_order (out .getvalue (), 'test-container-10' , 'test-container-17' )
280
+ assert_order (out .getvalue (), 'test-container-9' , 'test-container-17' )
281
+
282
+ # For test-container-16
283
+ assert_order (out .getvalue (), 'test-container-8' , 'test-container-16' )
284
+ assert_order (out .getvalue (), 'test-container-7' , 'test-container-16' )
285
+
286
+ # For test-container-15
287
+ assert_order (out .getvalue (), 'test-container-6' , 'test-container-15' )
288
+ assert_order (out .getvalue (), 'test-container-5' , 'test-container-15' )
289
+
290
+ # For test-container-14
291
+ assert_order (out .getvalue (), 'test-container-4' , 'test-container-14' )
292
+
293
+ # For test-container-13
294
+ assert_order (out .getvalue (), 'test-container-3' , 'test-container-13' )
295
+
296
+ # For test-container-12
297
+ assert_order (out .getvalue (), 'test-container-2' , 'test-container-12' )
298
+
299
+ # For test-container-11
300
+ assert_order (out .getvalue (), 'test-container-1' , 'test-container-11' )
301
+
302
+ # For test-container-10
303
+ assert_order (out .getvalue (), 'test-container-4' , 'test-container-10' )
304
+
305
+ # For test-container-9
306
+ assert_order (out .getvalue (), 'test-container-3' , 'test-container-9' )
307
+
308
+ # For test-container-8
309
+ assert_order (out .getvalue (), 'test-container-2' , 'test-container-8' )
310
+
311
+ # For test-container-7
312
+ assert_order (out .getvalue (), 'test-container-1' , 'test-container-7' )
313
+
314
+ # For test-container-6
315
+ assert_order (out .getvalue (), 'test-container-4' , 'test-container-6' )
316
+
317
+ # For test-container-5
318
+ assert_order (out .getvalue (), 'test-container-3' , 'test-container-5' )
319
+
320
+ # For test-container-4
321
+ assert_order (out .getvalue (), 'test-container-2' , 'test-container-4' )
322
+
323
+ # For test-container-3
324
+ assert_order (out .getvalue (), 'test-container-1' , 'test-container-3' )
325
+
326
+ # For test-container-2
327
+ assert_order (out .getvalue (), 'test-container-1' , 'test-container-2' )
328
+
253
329
254
330
def test_depends_on_error_not_running ():
255
331
runner = Tests .setup_runner (usage_scenario = 'depends_on_error_not_running.yml' , dry_run = True )
0 commit comments