31
31
from ironic_python_agent .tests .unit import base
32
32
33
33
34
+ EFI_RESULT = '' .encode ('utf-16' )
35
+
36
+
34
37
@mock .patch .object (hardware , 'dispatch_to_managers' , autospec = True )
35
38
@mock .patch .object (ilib_utils , 'execute' , autospec = True )
36
39
@mock .patch .object (tempfile , 'mkdtemp' , lambda * _ : '/tmp/fake-dir' )
@@ -230,7 +233,7 @@ def test__uefi_bootloader_given_partition(
230
233
231
234
mock_execute .side_effect = iter ([('' , '' ), ('' , '' ),
232
235
('' , '' ), ('' , '' ),
233
- ('' , '' ), ('' , '' ),
236
+ (EFI_RESULT , '' ), (EFI_RESULT , '' ),
234
237
('' , '' ), ('' , '' )])
235
238
236
239
expected = [mock .call ('efibootmgr' , '--version' ),
@@ -239,11 +242,11 @@ def test__uefi_bootloader_given_partition(
239
242
mock .call ('udevadm' , 'settle' ),
240
243
mock .call ('mount' , self .fake_efi_system_part ,
241
244
self .fake_dir + '/boot/efi' ),
242
- mock .call ('efibootmgr' , '-v' ),
245
+ mock .call ('efibootmgr' , '-v' , binary = True ),
243
246
mock .call ('efibootmgr' , '-v' , '-c' , '-d' , self .fake_dev ,
244
247
'-p' , '1' , '-w' ,
245
248
'-L' , 'ironic1' , '-l' ,
246
- '\\ EFI\\ BOOT\\ BOOTX64.EFI' ),
249
+ '\\ EFI\\ BOOT\\ BOOTX64.EFI' , binary = True ),
247
250
mock .call ('umount' , self .fake_dir + '/boot/efi' ,
248
251
attempts = 3 , delay_on_retry = True ),
249
252
mock .call ('sync' )]
@@ -278,7 +281,7 @@ def test__uefi_bootloader_find_partition(
278
281
mock_efi_bl .return_value = ['EFI/BOOT/BOOTX64.EFI' ]
279
282
mock_execute .side_effect = iter ([('' , '' ), ('' , '' ),
280
283
('' , '' ), ('' , '' ),
281
- ('' , '' ), ('' , '' ),
284
+ (EFI_RESULT , '' ), (EFI_RESULT , '' ),
282
285
('' , '' ), ('' , '' )])
283
286
284
287
expected = [mock .call ('efibootmgr' , '--version' ),
@@ -287,11 +290,11 @@ def test__uefi_bootloader_find_partition(
287
290
mock .call ('udevadm' , 'settle' ),
288
291
mock .call ('mount' , self .fake_efi_system_part ,
289
292
self .fake_dir + '/boot/efi' ),
290
- mock .call ('efibootmgr' , '-v' ),
293
+ mock .call ('efibootmgr' , '-v' , binary = True ),
291
294
mock .call ('efibootmgr' , '-v' , '-c' , '-d' , self .fake_dev ,
292
295
'-p' , '1' , '-w' ,
293
296
'-L' , 'ironic1' , '-l' ,
294
- '\\ EFI\\ BOOT\\ BOOTX64.EFI' ),
297
+ '\\ EFI\\ BOOT\\ BOOTX64.EFI' , binary = True ),
295
298
mock .call ('umount' , self .fake_dir + '/boot/efi' ,
296
299
attempts = 3 , delay_on_retry = True ),
297
300
mock .call ('sync' )]
@@ -332,10 +335,11 @@ def test__uefi_bootloader_with_entry_removal(
332
335
Boot0001 ironic2 HD(1,GPT,4f3c6294-bf9b-4208-9808-111111111112)File(\EFI\Boot\BOOTX64.EFI)
333
336
Boot0002 VENDMAGIC FvFile(9f3c6294-bf9b-4208-9808-be45dfc34b51)
334
337
""" # noqa This is a giant literal string for testing.
338
+ stdout_msg = stdout_msg .encode ('utf-16' )
335
339
mock_execute .side_effect = iter ([('' , '' ), ('' , '' ),
336
340
('' , '' ), ('' , '' ),
337
- (stdout_msg , '' ), ('' , '' ),
338
- ('' , '' ), ('' , '' ),
341
+ (stdout_msg , '' ), (EFI_RESULT , '' ),
342
+ (EFI_RESULT , '' ), (EFI_RESULT , '' ),
339
343
('' , '' ), ('' , '' )])
340
344
341
345
expected = [mock .call ('efibootmgr' , '--version' ),
@@ -344,12 +348,12 @@ def test__uefi_bootloader_with_entry_removal(
344
348
mock .call ('udevadm' , 'settle' ),
345
349
mock .call ('mount' , self .fake_efi_system_part ,
346
350
self .fake_dir + '/boot/efi' ),
347
- mock .call ('efibootmgr' , '-v' ),
348
- mock .call ('efibootmgr' , '-b' , '0000' , '-B' ),
351
+ mock .call ('efibootmgr' , '-v' , binary = True ),
352
+ mock .call ('efibootmgr' , '-b' , '0000' , '-B' , binary = True ),
349
353
mock .call ('efibootmgr' , '-v' , '-c' , '-d' , self .fake_dev ,
350
354
'-p' , '1' , '-w' ,
351
355
'-L' , 'ironic1' , '-l' ,
352
- '\\ EFI\\ BOOT\\ BOOTX64.EFI' ),
356
+ '\\ EFI\\ BOOT\\ BOOTX64.EFI' , binary = True ),
353
357
mock .call ('umount' , self .fake_dir + '/boot/efi' ,
354
358
attempts = 3 , delay_on_retry = True ),
355
359
mock .call ('sync' )]
@@ -395,6 +399,7 @@ def test__uefi_bootloader_with_entry_removal_lenovo(
395
399
Boot0003* Network VenHw(1fad3248-0000-7950-2166-a1e506fdb83a,05000000)..GO..NO............U.E.F.I.:. . . .S.L.O.T.2. .(.2.F./.0./.0.). .P.X.E. .I.P.4. . .Q.L.o.g.i.c. .Q.L.4.1.2.6.2. .P.C.I.e. .2.5.G.b. .2.-.P.o.r.t. .S.F.P.2.8. .E.t.h.e.r.n.e.t. .A.d.a.p.t.e.r. .-. .P.X.E........A....................%.4..Z...............................................................Gd-.;.A..MQ..L.P.X.E. .I.P.4. .Q.L.o.g.i.c. .Q.L.4.1.2.6.2. .P.C.I.e. .2.5.G.b. .2.-.P.o.r.t. .S.F.P.2.8. .E.t.h.e.r.n.e.t. .A.d.a.p.t.e.r. .-. .P.X.E.......BO..NO............U.E.F.I.:. . . .S.L.O.T.1. .(.3.0./.0./.0.). .P.X.E. .I.P.4. . .Q.L.o.g.i.c. .Q.L.4.1.2.6.2. .P.C.I.e. .2.5.G.b. .2.-.P.o.r.t. .S.F.P.2.8. .E.t.h.e.r.n.e.t. .A.d.a.p.t.e.r. .-.
396
400
Boot0004* ironic1 HD(1,GPT,55db8d03-c8f6-4a5b-9155-790dddc348fa,0x800,0x64000)/File(\EFI\b oot\shimx64.efi)
397
401
""" # noqa This is a giant literal string for testing.
402
+ stdout_msg = stdout_msg .encode ('utf-16' )
398
403
mock_execute .side_effect = iter ([('' , '' ), ('' , '' ),
399
404
('' , '' ), ('' , '' ),
400
405
(stdout_msg , '' ), ('' , '' ),
@@ -406,13 +411,13 @@ def test__uefi_bootloader_with_entry_removal_lenovo(
406
411
mock .call ('udevadm' , 'settle' ),
407
412
mock .call ('mount' , self .fake_efi_system_part ,
408
413
self .fake_dir + '/boot/efi' ),
409
- mock .call ('efibootmgr' , '-v' ),
410
- mock .call ('efibootmgr' , '-b' , '0000' , '-B' ),
411
- mock .call ('efibootmgr' , '-b' , '0004' , '-B' ),
414
+ mock .call ('efibootmgr' , '-v' , binary = True ),
415
+ mock .call ('efibootmgr' , '-b' , '0000' , '-B' , binary = True ),
416
+ mock .call ('efibootmgr' , '-b' , '0004' , '-B' , binary = True ),
412
417
mock .call ('efibootmgr' , '-v' , '-c' , '-d' , self .fake_dev ,
413
418
'-p' , '1' , '-w' ,
414
419
'-L' , 'ironic1' , '-l' ,
415
- '\\ EFI\\ BOOT\\ BOOTX64.EFI' ),
420
+ '\\ EFI\\ BOOT\\ BOOTX64.EFI' , binary = True ),
416
421
mock .call ('umount' , self .fake_dir + '/boot/efi' ,
417
422
attempts = 3 , delay_on_retry = True ),
418
423
mock .call ('sync' )]
@@ -449,8 +454,8 @@ def test__add_multi_bootloaders(
449
454
450
455
mock_execute .side_effect = iter ([('' , '' ), ('' , '' ),
451
456
('' , '' ), ('' , '' ),
452
- ('' , '' ), ('' , '' ),
453
- ('' , '' ), ('' , '' ),
457
+ (EFI_RESULT , '' ), (EFI_RESULT , '' ),
458
+ (EFI_RESULT , '' ), ('' , '' ),
454
459
('' , '' )])
455
460
456
461
expected = [mock .call ('efibootmgr' , '--version' ),
@@ -459,15 +464,15 @@ def test__add_multi_bootloaders(
459
464
mock .call ('udevadm' , 'settle' ),
460
465
mock .call ('mount' , self .fake_efi_system_part ,
461
466
self .fake_dir + '/boot/efi' ),
462
- mock .call ('efibootmgr' , '-v' ),
467
+ mock .call ('efibootmgr' , '-v' , binary = True ),
463
468
mock .call ('efibootmgr' , '-v' , '-c' , '-d' , self .fake_dev ,
464
469
'-p' , '1' , '-w' ,
465
470
'-L' , 'ironic1' , '-l' ,
466
- '\\ EFI\\ BOOT\\ BOOTX64.EFI' ),
471
+ '\\ EFI\\ BOOT\\ BOOTX64.EFI' , binary = True ),
467
472
mock .call ('efibootmgr' , '-v' , '-c' , '-d' , self .fake_dev ,
468
473
'-p' , '1' , '-w' ,
469
474
'-L' , 'ironic2' , '-l' ,
470
- '\\ WINDOWS\\ system32\\ winload.efi' ),
475
+ '\\ WINDOWS\\ system32\\ winload.efi' , binary = True ),
471
476
mock .call ('umount' , self .fake_dir + '/boot/efi' ,
472
477
attempts = 3 , delay_on_retry = True ),
473
478
mock .call ('sync' )]
0 commit comments