@@ -260,9 +260,9 @@ def test_create_parse_host_port(self, mock):
260
260
"protocol" : "tcp" ,
261
261
},
262
262
]
263
- actual_ports = json .loads (
264
- self . client . containers . client . post . call_args [ 1 ][ "data" ]
265
- )[ "portmappings" ]
263
+ actual_ports = json .loads (self . client . containers . client . post . call_args [ 1 ][ "data" ])[
264
+ "portmappings"
265
+ ]
266
266
self .assertEqual (expected_ports , actual_ports )
267
267
268
268
@requests_mock .Mocker ()
@@ -284,9 +284,9 @@ def test_create_userns_mode_simple(self, mock):
284
284
self .client .containers .client .post .assert_called ()
285
285
expected_userns = {"nsmode" : userns }
286
286
287
- actual_userns = json .loads (
288
- self . client . containers . client . post . call_args [ 1 ][ "data" ]
289
- )[ "userns" ]
287
+ actual_userns = json .loads (self . client . containers . client . post . call_args [ 1 ][ "data" ])[
288
+ "userns"
289
+ ]
290
290
self .assertEqual (expected_userns , actual_userns )
291
291
292
292
@requests_mock .Mocker ()
@@ -308,9 +308,9 @@ def test_create_userns_mode_dict(self, mock):
308
308
self .client .containers .client .post .assert_called ()
309
309
expected_userns = dict (** userns )
310
310
311
- actual_userns = json .loads (
312
- self . client . containers . client . post . call_args [ 1 ][ "data" ]
313
- )[ "userns" ]
311
+ actual_userns = json .loads (self . client . containers . client . post . call_args [ 1 ][ "data" ])[
312
+ "userns"
313
+ ]
314
314
self .assertEqual (expected_userns , actual_userns )
315
315
316
316
def test_create_unsupported_key (self ):
@@ -323,13 +323,10 @@ def test_create_unknown_key(self):
323
323
324
324
@requests_mock .Mocker ()
325
325
def test_create_convert_env_list_to_dict (self , mock ):
326
-
327
326
env_list1 = ["FOO=foo" , "BAR=bar" ]
328
327
# Test valid list
329
328
converted_dict1 = {"FOO" : "foo" , "BAR" : "bar" }
330
- self .assertEqual (
331
- CreateMixin ._convert_env_list_to_dict (env_list1 ), converted_dict1
332
- )
329
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list1 ), converted_dict1 )
333
330
334
331
# Test empty string
335
332
env_list2 = ["FOO=foo" , "" ]
@@ -346,51 +343,37 @@ def test_create_convert_env_list_to_dict(self, mock):
346
343
# Test empty list
347
344
env_list5 = []
348
345
converted_dict5 = {}
349
- self .assertEqual (
350
- CreateMixin ._convert_env_list_to_dict (env_list5 ), converted_dict5
351
- )
346
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list5 ), converted_dict5 )
352
347
353
348
# Test single valid environment variable
354
349
env_list6 = ["SINGLE=value" ]
355
350
converted_dict6 = {"SINGLE" : "value" }
356
- self .assertEqual (
357
- CreateMixin ._convert_env_list_to_dict (env_list6 ), converted_dict6
358
- )
351
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list6 ), converted_dict6 )
359
352
360
353
# Test environment variable with empty value
361
354
env_list7 = ["EMPTY=" ]
362
355
converted_dict7 = {"EMPTY" : "" }
363
- self .assertEqual (
364
- CreateMixin ._convert_env_list_to_dict (env_list7 ), converted_dict7
365
- )
356
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list7 ), converted_dict7 )
366
357
367
358
# Test environment variable with multiple equals signs
368
359
env_list8 = ["URL=https://example.com/path?param=value" ]
369
360
converted_dict8 = {"URL" : "https://example.com/path?param=value" }
370
- self .assertEqual (
371
- CreateMixin ._convert_env_list_to_dict (env_list8 ), converted_dict8
372
- )
361
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list8 ), converted_dict8 )
373
362
374
363
# Test environment variable with spaces in value
375
364
env_list9 = ["MESSAGE=Hello World" , "PATH=/usr/local/bin:/usr/bin" ]
376
365
converted_dict9 = {"MESSAGE" : "Hello World" , "PATH" : "/usr/local/bin:/usr/bin" }
377
- self .assertEqual (
378
- CreateMixin ._convert_env_list_to_dict (env_list9 ), converted_dict9
379
- )
366
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list9 ), converted_dict9 )
380
367
381
368
# Test environment variable with special characters
382
369
env_list10 = ["SPECIAL=!@#$%^&*()_+-=[]{}|;':\" ,./<>?" ]
383
370
converted_dict10 = {"SPECIAL" : "!@#$%^&*()_+-=[]{}|;':\" ,./<>?" }
384
- self .assertEqual (
385
- CreateMixin ._convert_env_list_to_dict (env_list10 ), converted_dict10
386
- )
371
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list10 ), converted_dict10 )
387
372
388
373
# Test environment variable with numeric values
389
374
env_list11 = ["PORT=8080" , "TIMEOUT=30" ]
390
375
converted_dict11 = {"PORT" : "8080" , "TIMEOUT" : "30" }
391
- self .assertEqual (
392
- CreateMixin ._convert_env_list_to_dict (env_list11 ), converted_dict11
393
- )
376
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list11 ), converted_dict11 )
394
377
395
378
# Test environment variable with boolean-like values
396
379
env_list12 = ["DEBUG=true" , "VERBOSE=false" , "ENABLED=1" , "DISABLED=0" ]
@@ -400,16 +383,12 @@ def test_create_convert_env_list_to_dict(self, mock):
400
383
"ENABLED" : "1" ,
401
384
"DISABLED" : "0" ,
402
385
}
403
- self .assertEqual (
404
- CreateMixin ._convert_env_list_to_dict (env_list12 ), converted_dict12
405
- )
386
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list12 ), converted_dict12 )
406
387
407
388
# Test environment variable with whitespace in key (should preserve)
408
389
env_list13 = [" SPACED_KEY =value" , "KEY= spaced_value " ]
409
390
converted_dict13 = {" SPACED_KEY " : "value" , "KEY" : " spaced_value " }
410
- self .assertEqual (
411
- CreateMixin ._convert_env_list_to_dict (env_list13 ), converted_dict13
412
- )
391
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list13 ), converted_dict13 )
413
392
414
393
# Test missing equals sign
415
394
env_list14 = ["FOO=foo" , "INVALID" ]
@@ -440,38 +419,28 @@ def test_create_convert_env_list_to_dict(self, mock):
440
419
# Test duplicate keys (last one should win)
441
420
env_list21 = ["KEY=first" , "KEY=second" , "OTHER=value" ]
442
421
converted_dict21 = {"KEY" : "second" , "OTHER" : "value" }
443
- self .assertEqual (
444
- CreateMixin ._convert_env_list_to_dict (env_list21 ), converted_dict21
445
- )
422
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list21 ), converted_dict21 )
446
423
447
424
# Test very long environment variable
448
425
long_value = "x" * 1000
449
426
env_list22 = [f"LONG_VAR={ long_value } " ]
450
427
converted_dict22 = {"LONG_VAR" : long_value }
451
- self .assertEqual (
452
- CreateMixin ._convert_env_list_to_dict (env_list22 ), converted_dict22
453
- )
428
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list22 ), converted_dict22 )
454
429
455
430
# Test environment variable with newlines and tabs
456
431
env_list23 = ["MULTILINE=line1\n line2\t tabbed" ]
457
432
converted_dict23 = {"MULTILINE" : "line1\n line2\t tabbed" }
458
- self .assertEqual (
459
- CreateMixin ._convert_env_list_to_dict (env_list23 ), converted_dict23
460
- )
433
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list23 ), converted_dict23 )
461
434
462
435
# Test environment variable with unicode characters
463
436
env_list24 = ["UNICODE=こんにちは" , "EMOJI=🚀🌟" ]
464
437
converted_dict24 = {"UNICODE" : "こんにちは" , "EMOJI" : "🚀🌟" }
465
- self .assertEqual (
466
- CreateMixin ._convert_env_list_to_dict (env_list24 ), converted_dict24
467
- )
438
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list24 ), converted_dict24 )
468
439
469
440
# Test case sensitivity
470
441
env_list25 = ["path=/usr/bin" , "PATH=/usr/local/bin" ]
471
442
converted_dict25 = {"path" : "/usr/bin" , "PATH" : "/usr/local/bin" }
472
- self .assertEqual (
473
- CreateMixin ._convert_env_list_to_dict (env_list25 ), converted_dict25
474
- )
443
+ self .assertEqual (CreateMixin ._convert_env_list_to_dict (env_list25 ), converted_dict25 )
475
444
476
445
@requests_mock .Mocker ()
477
446
def test_run_detached (self , mock ):
@@ -494,9 +463,7 @@ def test_run_detached(self, mock):
494
463
json = FIRST_CONTAINER ,
495
464
)
496
465
497
- with patch .multiple (
498
- Container , logs = DEFAULT , wait = DEFAULT , autospec = True
499
- ) as mock_container :
466
+ with patch .multiple (Container , logs = DEFAULT , wait = DEFAULT , autospec = True ) as mock_container :
500
467
mock_container ["logs" ].return_value = []
501
468
mock_container ["wait" ].return_value = {"StatusCode" : 0 }
502
469
@@ -529,27 +496,21 @@ def test_run(self, mock):
529
496
b"This is a unittest - line 2" ,
530
497
)
531
498
532
- with patch .multiple (
533
- Container , logs = DEFAULT , wait = DEFAULT , autospec = True
534
- ) as mock_container :
499
+ with patch .multiple (Container , logs = DEFAULT , wait = DEFAULT , autospec = True ) as mock_container :
535
500
mock_container ["wait" ].return_value = 0
536
501
537
502
with self .subTest ("Results not streamed" ):
538
503
mock_container ["logs" ].return_value = iter (mock_logs )
539
504
540
505
actual = self .client .containers .run ("fedora" , "/usr/bin/ls" )
541
506
self .assertIsInstance (actual , bytes )
542
- self .assertEqual (
543
- actual , b"This is a unittest - line 1This is a unittest - line 2"
544
- )
507
+ self .assertEqual (actual , b"This is a unittest - line 1This is a unittest - line 2" )
545
508
546
509
# iter() cannot be reset so subtests used to create new instance
547
510
with self .subTest ("Stream results" ):
548
511
mock_container ["logs" ].return_value = iter (mock_logs )
549
512
550
- actual = self .client .containers .run (
551
- "fedora" , "/usr/bin/ls" , stream = True
552
- )
513
+ actual = self .client .containers .run ("fedora" , "/usr/bin/ls" , stream = True )
553
514
self .assertNotIsInstance (actual , bytes )
554
515
self .assertIsInstance (actual , Iterator )
555
516
self .assertEqual (next (actual ), b"This is a unittest - line 1" )
0 commit comments