Ejemplo n.º 1
0
 def test_screen(self):
     try:
         # Launch some screens
         screen_kill('my_1st_screen', fail=False)
         screen_kill('my_2nd_screen', fail=False)
         self.equal(len(screen_launch('my_1st_screen', 'top', fail=False)['stderr']), 0)
         self.equal(len(screen_launch('my_2nd_screen', 'top', fail=False)['stderr']), 0)
         self.equal(len(screen_launch('my_2nd_screen', 'top', fail=False)['stderr']), 0)
         # List the launched screen sessions
         screens = screen_list(name='my_1st_screen')
         self.greater_equal(len(screens), 1)
         self.true(screens[0].endswith('my_1st_screen'))
         screens = screen_list(name='my_2nd_screen')
         self.greater_equal(len(screens), 1)
         self.true(screens[0].endswith('my_2nd_screen'))
     finally:
         # Cleanup
         log = Mock()
         screen_kill(name='my_1st_screen', log=log)
         screen_kill(name='my_2nd_screen', log=log)
         if log.call_args_list:
             validate_list(log.call_args_list, [
                 r"call\(u*'Execute screen -ls my_1st_screen'\)",
                 r"call\(u*'Attempt 1 out of 1: Failed'\)",
                 r"call\(u*'Execute screen -S \d+\.my_1st_screen -X quit'\)",
                 r"call\(u*'Execute screen -ls my_2nd_screen'\)",
                 r"call\(u*'Attempt 1 out of 1: Failed'\)",
                 r"call\(u*'Execute screen -S \d+\.my_2nd_screen -X quit'\)",
                 r"call\(u*'Execute screen -S \d+\.my_2nd_screen -X quit'\)"
             ])
Ejemplo n.º 2
0
 def test_retry_missing_binary_no_retry(self):
     log = Mock()
     with self.raises(OSError):
         cmd('hfuejnvwqkdivengz', log=log, tries=5)
     validate_list(log.call_args_list, [
         r"call\(u*'Execute hfuejnvwqkdivengz'\)",
         r"call\(FileNotFoundError.*\)" if six.PY3 else r"call\(OSError.*\)"
     ])
Ejemplo n.º 3
0
 def test_retry_no_success(self):
     log = Mock()
     cmd('ls hfuejnvwqkdivengz', log=log, fail=False, tries=5, delay_min=0.0, delay_max=0.95)
     validate_list(log.call_args_list, [
         r"call\(u*'Execute ls hfuejnvwqkdivengz'\)",
         r"call\(u*'Attempt 1 out of 5: Will retry in 0\.[0-9]+ seconds'\)",
         r"call\(u*'Attempt 2 out of 5: Will retry in 0\.[0-9]+ seconds'\)",
         r"call\(u*'Attempt 3 out of 5: Will retry in 0\.[0-9]+ seconds'\)",
         r"call\(u*'Attempt 4 out of 5: Will retry in 0\.[0-9]+ seconds'\)",
         r"call\(u*'Attempt 5 out of 5: Failed'\)"
     ])
Ejemplo n.º 4
0
 def test_cmd(self):
     log = Mock()
     cmd(['echo', 'it seem to work'], log=log)
     self.equal(cmd('cat missing_file', fail=False, log=log)['returncode'], 1)
     validate_list(log.call_args_list, [
         r"call\(u*'Execute echo it seem to work'\)",
         r"call\(u*'Execute cat missing_file'\)",
         r"call\(u*'Attempt 1 out of 1: Failed'\)"
     ])
     self.not_equal(cmd('my.funny.missing.script.sh', fail=False)['stderr'], '')
     result = cmd('cat {0}'.format(__file__))
     # There are at least 30 lines in this source file !
     self.greater(len(result['stdout'].splitlines()), 30)
Ejemplo n.º 5
0
 def test_retry_first_try(self):
     log = Mock()
     cmd('ls', log=log, tries=5, delay_min=1, delay_max=1)
     validate_list(log.call_args_list, [r"call\(u*'Execute ls'\)"])