2727six .add_move (six .MovedModule ("mock" , "mock" , "unittest.mock" ))
2828from six .moves import mock
2929
30- from convert2rhel import actions , backup , cert , checks , grub
30+ from convert2rhel import actions , applock , backup , cert , checks , grub
3131from convert2rhel import logger as logger_module
3232from convert2rhel import main , pkghandler , pkgmanager , redhatrelease , repo , subscription , toolopts , unit_tests , utils
3333from convert2rhel .actions import report
@@ -201,7 +201,8 @@ def test_post_ponr_conversion(monkeypatch):
201201 assert lock_releasever_in_rhel_repositories_mock .call_count == 1
202202
203203
204- def test_main (monkeypatch ):
204+ def test_main (monkeypatch , tmp_path ):
205+ require_root_mock = mock .Mock ()
205206 initialize_logger_mock = mock .Mock ()
206207 toolopts_cli_mock = mock .Mock ()
207208 show_eula_mock = mock .Mock ()
@@ -225,6 +226,8 @@ def test_main(monkeypatch):
225226 update_rhsm_custom_facts_mock = mock .Mock ()
226227 summary_as_json_mock = mock .Mock ()
227228
229+ monkeypatch .setattr (applock , "_DEFAULT_LOCK_DIR" , str (tmp_path ))
230+ monkeypatch .setattr (utils , "require_root" , require_root_mock )
228231 monkeypatch .setattr (main , "initialize_logger" , initialize_logger_mock )
229232 monkeypatch .setattr (toolopts , "CLI" , toolopts_cli_mock )
230233 monkeypatch .setattr (main , "show_eula" , show_eula_mock )
@@ -249,6 +252,7 @@ def test_main(monkeypatch):
249252 monkeypatch .setattr (report , "summary_as_json" , summary_as_json_mock )
250253
251254 assert main .main () == 0
255+ assert require_root_mock .call_count == 1
252256 assert initialize_logger_mock .call_count == 1
253257 assert toolopts_cli_mock .call_count == 1
254258 assert show_eula_mock .call_count == 1
@@ -271,28 +275,33 @@ def test_main(monkeypatch):
271275 assert summary_as_json_mock .call_count == 1
272276
273277
274- def test_main_rollback_post_cli_phase (monkeypatch , caplog ):
278+ def test_main_rollback_post_cli_phase (monkeypatch , caplog , tmp_path ):
279+ require_root_mock = mock .Mock ()
275280 initialize_logger_mock = mock .Mock ()
276281 toolopts_cli_mock = mock .Mock ()
277282 show_eula_mock = mock .Mock (side_effect = Exception )
278283
279284 # Mock the rollback calls
280285 finish_collection_mock = mock .Mock ()
281286
287+ monkeypatch .setattr (applock , "_DEFAULT_LOCK_DIR" , str (tmp_path ))
288+ monkeypatch .setattr (utils , "require_root" , require_root_mock )
282289 monkeypatch .setattr (main , "initialize_logger" , initialize_logger_mock )
283290 monkeypatch .setattr (toolopts , "CLI" , toolopts_cli_mock )
284291 monkeypatch .setattr (main , "show_eula" , show_eula_mock )
285292 monkeypatch .setattr (breadcrumbs , "finish_collection" , finish_collection_mock )
286293
287294 assert main .main () == 1
295+ assert require_root_mock .call_count == 1
288296 assert initialize_logger_mock .call_count == 1
289297 assert toolopts_cli_mock .call_count == 1
290298 assert show_eula_mock .call_count == 1
291299 assert finish_collection_mock .call_count == 1
292- assert "No changes were made to the system." in caplog .records [- 1 ].message
300+ assert "No changes were made to the system." in caplog .records [- 2 ].message
293301
294302
295- def test_main_traceback_before_action_completion (monkeypatch , caplog ):
303+ def test_main_traceback_before_action_completion (monkeypatch , caplog , tmp_path ):
304+ require_root_mock = mock .Mock ()
296305 initialize_logger_mock = mock .Mock ()
297306 toolopts_cli_mock = mock .Mock ()
298307 show_eula_mock = mock .Mock ()
@@ -309,6 +318,8 @@ def test_main_traceback_before_action_completion(monkeypatch, caplog):
309318 rollback_changes_mock = mock .Mock ()
310319 summary_as_json_mock = mock .Mock ()
311320
321+ monkeypatch .setattr (applock , "_DEFAULT_LOCK_DIR" , str (tmp_path ))
322+ monkeypatch .setattr (utils , "require_root" , require_root_mock )
312323 monkeypatch .setattr (main , "initialize_logger" , initialize_logger_mock )
313324 monkeypatch .setattr (toolopts , "CLI" , toolopts_cli_mock )
314325 monkeypatch .setattr (main , "show_eula" , show_eula_mock )
@@ -324,6 +335,7 @@ def test_main_traceback_before_action_completion(monkeypatch, caplog):
324335 monkeypatch .setattr (report , "summary_as_json" , summary_as_json_mock )
325336
326337 assert main .main () == 1
338+ assert require_root_mock .call_count == 1
327339 assert initialize_logger_mock .call_count == 1
328340 assert toolopts_cli_mock .call_count == 1
329341 assert show_eula_mock .call_count == 1
@@ -338,13 +350,14 @@ def test_main_traceback_before_action_completion(monkeypatch, caplog):
338350 assert summary_as_json_mock .call_count == 0
339351 print (caplog .records )
340352 assert (
341- caplog .records [- 1 ].message .strip ()
353+ caplog .records [- 2 ].message .strip ()
342354 == "Conversion interrupted before analysis of system completed. Report not generated."
343355 )
344- assert "Action Framework Crashed" in caplog .records [- 2 ].message
356+ assert "Action Framework Crashed" in caplog .records [- 3 ].message
345357
346358
347- def test_main_rollback_pre_ponr_changes_phase (monkeypatch , caplog ):
359+ def test_main_rollback_pre_ponr_changes_phase (monkeypatch , caplog , tmp_path ):
360+ require_root_mock = mock .Mock ()
348361 initialize_logger_mock = mock .Mock ()
349362 toolopts_cli_mock = mock .Mock ()
350363 show_eula_mock = mock .Mock ()
@@ -363,6 +376,8 @@ def test_main_rollback_pre_ponr_changes_phase(monkeypatch, caplog):
363376 rollback_changes_mock = mock .Mock ()
364377 summary_as_json_mock = mock .Mock ()
365378
379+ monkeypatch .setattr (applock , "_DEFAULT_LOCK_DIR" , str (tmp_path ))
380+ monkeypatch .setattr (utils , "require_root" , require_root_mock )
366381 monkeypatch .setattr (main , "initialize_logger" , initialize_logger_mock )
367382 monkeypatch .setattr (toolopts , "CLI" , toolopts_cli_mock )
368383 monkeypatch .setattr (main , "show_eula" , show_eula_mock )
@@ -380,6 +395,7 @@ def test_main_rollback_pre_ponr_changes_phase(monkeypatch, caplog):
380395 monkeypatch .setattr (report , "summary_as_json" , summary_as_json_mock )
381396
382397 assert main .main () == 1
398+ assert require_root_mock .call_count == 1
383399 assert initialize_logger_mock .call_count == 1
384400 assert toolopts_cli_mock .call_count == 1
385401 assert show_eula_mock .call_count == 1
@@ -394,11 +410,12 @@ def test_main_rollback_pre_ponr_changes_phase(monkeypatch, caplog):
394410 assert finish_collection_mock .call_count == 1
395411 assert rollback_changes_mock .call_count == 1
396412 assert summary_as_json_mock .call_count == 1
397- assert caplog .records [- 2 ].message == "Conversion failed."
398- assert caplog .records [- 2 ].levelname == "CRITICAL"
413+ assert caplog .records [- 3 ].message == "Conversion failed."
414+ assert caplog .records [- 3 ].levelname == "CRITICAL"
399415
400416
401- def test_main_rollback_analyze_exit_phase (global_tool_opts , monkeypatch ):
417+ def test_main_rollback_analyze_exit_phase (global_tool_opts , monkeypatch , tmp_path ):
418+ require_root_mock = mock .Mock ()
402419 initialize_logger_mock = mock .Mock ()
403420 toolopts_cli_mock = mock .Mock ()
404421 show_eula_mock = mock .Mock ()
@@ -416,6 +433,8 @@ def test_main_rollback_analyze_exit_phase(global_tool_opts, monkeypatch):
416433 finish_collection_mock = mock .Mock ()
417434 rollback_changes_mock = mock .Mock ()
418435
436+ monkeypatch .setattr (applock , "_DEFAULT_LOCK_DIR" , str (tmp_path ))
437+ monkeypatch .setattr (utils , "require_root" , require_root_mock )
419438 monkeypatch .setattr (main , "initialize_logger" , initialize_logger_mock )
420439 monkeypatch .setattr (toolopts , "CLI" , toolopts_cli_mock )
421440 monkeypatch .setattr (main , "show_eula" , show_eula_mock )
@@ -434,6 +453,7 @@ def test_main_rollback_analyze_exit_phase(global_tool_opts, monkeypatch):
434453 global_tool_opts .activity = "analysis"
435454
436455 assert main .main () == 0
456+ assert require_root_mock .call_count == 1
437457 assert initialize_logger_mock .call_count == 1
438458 assert toolopts_cli_mock .call_count == 1
439459 assert show_eula_mock .call_count == 1
@@ -449,7 +469,8 @@ def test_main_rollback_analyze_exit_phase(global_tool_opts, monkeypatch):
449469 assert summary_as_json_mock .call_count == 1
450470
451471
452- def test_main_rollback_post_ponr_changes_phase (monkeypatch , caplog ):
472+ def test_main_rollback_post_ponr_changes_phase (monkeypatch , caplog , tmp_path ):
473+ require_root_mock = mock .Mock ()
453474 initialize_logger_mock = mock .Mock ()
454475 toolopts_cli_mock = mock .Mock ()
455476 show_eula_mock = mock .Mock ()
@@ -470,6 +491,8 @@ def test_main_rollback_post_ponr_changes_phase(monkeypatch, caplog):
470491 finish_collection_mock = mock .Mock ()
471492 update_rhsm_custom_facts_mock = mock .Mock ()
472493
494+ monkeypatch .setattr (applock , "_DEFAULT_LOCK_DIR" , str (tmp_path ))
495+ monkeypatch .setattr (utils , "require_root" , require_root_mock )
473496 monkeypatch .setattr (main , "initialize_logger" , initialize_logger_mock )
474497 monkeypatch .setattr (toolopts , "CLI" , toolopts_cli_mock )
475498 monkeypatch .setattr (main , "show_eula" , show_eula_mock )
@@ -489,6 +512,7 @@ def test_main_rollback_post_ponr_changes_phase(monkeypatch, caplog):
489512 monkeypatch .setattr (report , "summary_as_json" , summary_as_json_mock )
490513
491514 assert main .main () == 1
515+ assert require_root_mock .call_count == 1
492516 assert initialize_logger_mock .call_count == 1
493517 assert toolopts_cli_mock .call_count == 1
494518 assert show_eula_mock .call_count == 1
@@ -504,5 +528,5 @@ def test_main_rollback_post_ponr_changes_phase(monkeypatch, caplog):
504528 assert post_ponr_conversion_mock .call_count == 1
505529 assert finish_collection_mock .call_count == 1
506530 assert summary_as_json_mock .call_count == 1
507- assert "The system is left in an undetermined state that Convert2RHEL cannot fix." in caplog .records [- 1 ].message
531+ assert "The system is left in an undetermined state that Convert2RHEL cannot fix." in caplog .records [- 2 ].message
508532 assert update_rhsm_custom_facts_mock .call_count == 1
0 commit comments