@@ -578,3 +578,64 @@ def test_connect_success(self):
578
578
print (sys .stderr , result .output )
579
579
assert result .exit_code == 0
580
580
assert result .output == "Successful connection to line [1]\n Press ^A ^X to disconnect\n "
581
+
582
+ class TestConsutilClear (object ):
583
+ @classmethod
584
+ def setup_class (cls ):
585
+ print ("SETUP" )
586
+
587
+ @mock .patch ('consutil.lib.SysInfoProvider.list_console_ttys' , mock .MagicMock (return_value = ["/dev/ttyUSB1" ]))
588
+ @mock .patch ('consutil.lib.SysInfoProvider.init_device_prefix' , mock .MagicMock (return_value = None ))
589
+ @mock .patch ('os.geteuid' , mock .MagicMock (return_value = 1 ))
590
+ def test_clear_without_root (self ):
591
+ runner = CliRunner ()
592
+ db = Db ()
593
+
594
+ result = runner .invoke (consutil .consutil .commands ["clear" ], ['1' ], obj = db )
595
+ print (result .exit_code )
596
+ print (sys .stderr , result .output )
597
+ assert result .exit_code == 2
598
+ assert "Root privileges are required for this operation" in result .output
599
+
600
+ @mock .patch ('consutil.lib.SysInfoProvider.list_console_ttys' , mock .MagicMock (return_value = ["/dev/ttyUSB1" ]))
601
+ @mock .patch ('consutil.lib.SysInfoProvider.init_device_prefix' , mock .MagicMock (return_value = None ))
602
+ @mock .patch ('os.geteuid' , mock .MagicMock (return_value = 0 ))
603
+ def test_clear_line_not_found (self ):
604
+ runner = CliRunner ()
605
+ db = Db ()
606
+
607
+ result = runner .invoke (consutil .consutil .commands ["clear" ], ['2' ], obj = db )
608
+ print (result .exit_code )
609
+ print (sys .stderr , result .output )
610
+ assert result .exit_code == 3
611
+ assert "Target [2] does not exist" in result .output
612
+
613
+ @mock .patch ('consutil.lib.SysInfoProvider.list_console_ttys' , mock .MagicMock (return_value = ["/dev/ttyUSB1" ]))
614
+ @mock .patch ('consutil.lib.SysInfoProvider.init_device_prefix' , mock .MagicMock (return_value = None ))
615
+ @mock .patch ('os.geteuid' , mock .MagicMock (return_value = 0 ))
616
+ @mock .patch ('consutil.lib.ConsolePortInfo.clear_session' , mock .MagicMock (return_value = False ))
617
+ def test_clear_idle (self ):
618
+ runner = CliRunner ()
619
+ db = Db ()
620
+ db .cfgdb .set_entry ("CONSOLE_PORT" , 1 , { "remote_device" : "switch1" , "baud_rate" : "9600" })
621
+
622
+ result = runner .invoke (consutil .consutil .commands ["clear" ], ['1' ], obj = db )
623
+ print (result .exit_code )
624
+ print (sys .stderr , result .output )
625
+ assert result .exit_code == 0
626
+ assert "No process is connected to line 1" in result .output
627
+
628
+ @mock .patch ('consutil.lib.SysInfoProvider.list_console_ttys' , mock .MagicMock (return_value = ["/dev/ttyUSB1" ]))
629
+ @mock .patch ('consutil.lib.SysInfoProvider.init_device_prefix' , mock .MagicMock (return_value = None ))
630
+ @mock .patch ('os.geteuid' , mock .MagicMock (return_value = 0 ))
631
+ @mock .patch ('consutil.lib.ConsolePortInfo.clear_session' , mock .MagicMock (return_value = True ))
632
+ def test_clear_success (self ):
633
+ runner = CliRunner ()
634
+ db = Db ()
635
+ db .cfgdb .set_entry ("CONSOLE_PORT" , 1 , { "remote_device" : "switch1" , "baud_rate" : "9600" })
636
+
637
+ result = runner .invoke (consutil .consutil .commands ["clear" ], ['1' ], obj = db )
638
+ print (result .exit_code )
639
+ print (sys .stderr , result .output )
640
+ assert result .exit_code == 0
641
+ assert result .output == ""
0 commit comments