def test_screen():
    try:
        # Launch some screens
        subprocess.screen_kill('my_1st_screen', fail=False)
        subprocess.screen_kill('my_2nd_screen', fail=False)
        assert subprocess.screen_launch('my_1st_screen', 'top',
                                        fail=False)['stderr'] == b''
        assert subprocess.screen_launch('my_2nd_screen', 'top',
                                        fail=False)['stderr'] == b''
        assert subprocess.screen_launch('my_2nd_screen', 'top',
                                        fail=False)['stderr'] == b''

        # List the launched screen sessions
        assert subprocess.screen_list(name='my_1st_screen') == [
            regex.Match(r'\d+\.my_1st_screen')
        ]
        assert subprocess.screen_list(name='my_2nd_screen') == [
            regex.Match(r'\d+\.my_2nd_screen'),
            regex.Match(r'\d+\.my_2nd_screen')
        ]
    finally:
        # Cleanup
        log = mock.Mock()
        subprocess.screen_kill(name='my_1st_screen', log=log)
        subprocess.screen_kill(name='my_2nd_screen', log=log)
        if log.call_args_list:
            validate_list(log.call_args_list, [
                r"call\('Execute screen -ls my_1st_screen'\)",
                r"call\('Execute screen -S \d+\.my_1st_screen -X quit'\)",
                r"call\('Execute screen -ls my_2nd_screen'\)",
                r"call\('Execute screen -S \d+\.my_2nd_screen -X quit'\)",
                r"call\('Execute screen -S \d+\.my_2nd_screen -X quit'\)"
            ])
Example #2
0
 def test_screen(self):
     try:
         # Launch some screens
         screen_kill('my_1st_screen', fail=False)
         screen_kill('my_2nd_screen', fail=False)
         self.assertEqual(len(screen_launch('my_1st_screen', 'top', fail=False)['stderr']), 0)
         self.assertEqual(len(screen_launch('my_2nd_screen', 'top', fail=False)['stderr']), 0)
         self.assertEqual(len(screen_launch('my_2nd_screen', 'top', fail=False)['stderr']), 0)
         # List the launched screen sessions
         screens = screen_list(name='my_1st_screen')
         self.assertGreaterEqual(len(screens), 1)
         self.assertTrue(screens[0].endswith('my_1st_screen'))
         screens = screen_list(name='my_2nd_screen')
         self.assertGreaterEqual(len(screens), 1)
         self.assertTrue(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'\)"
             ])
Example #3
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.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'\)"
             ])
Example #4
0
 def test_retry_missing_binary_no_retry(self):
     log = Mock()
     with self.assertRaises(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.*\)"
     ])
def test_retry_missing_binary_no_retry():
    log = mock.Mock()
    with pytest.raises(OSError):
        subprocess.cmd('hfuejnvwqkdivengz', log=log, tries=5)
    validate_list(log.call_args_list, [
        r"call\(u*'Execute hfuejnvwqkdivengz'\)",
        r'call\(FileNotFoundError.*\)'
    ])
Example #6
0
 def test_retry_missing_binary_no_retry(self):
     log = mock.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.*\)"
     ])
Example #7
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'\)"
     ])
Example #8
0
 def test_retry_no_success(self):
     log = mock.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'\)"
     ])
Example #9
0
 def test_cmd(self):
     cmd_log = mock_cmd()
     cmd([u'echo', u'it seem to work'], log=cmd_log)
     assert_equal(cmd(u'cat missing_file', fail=False, log=cmd_log)[u'returncode'], 1)
     validate_list(cmd_log.call_args_list, [
             r"call\(u*\"Execute \[u*'echo', u*'it seem to work'\]\"\)",
             r"call\(u*'Execute cat missing_file'\)"])
     assert(cmd(u'my.funny.missing.script.sh', fail=False)[u'stderr'] != u'')
     result = cmd(u'cat {0}'.format(__file__))
     # There are at least 30 lines in this source file !
     assert(len(result[u'stdout'].splitlines()) > 30)
Example #10
0
 def test_cmd(self):
     log = Mock()
     cmd(['echo', 'it seem to work'], log=log)
     self.assertEqual(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.assertNotEqual(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.assertGreater(len(result['stdout'].splitlines()), 30)
Example #11
0
 def test_cmd(self):
     log = mock.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)
def test_cmd():
    log = mock.Mock()
    subprocess.cmd(['echo', 'it seem to work'], log=log)
    assert subprocess.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'\)"
    ])
    assert subprocess.cmd('my.funny.missing.script.sh',
                          fail=False)['stderr'] != ''
    result = subprocess.cmd(f'cat {__file__}')
    # There are at least 30 lines in this source file !
    assert len(result['stdout'].splitlines()) > 30
Example #13
0
 def test_screen(self):
     try:
         # Launch some screens
         assert_equal(len(screen_launch(u'my_1st_screen', u'top', fail=False)[u'stderr']), 0)
         assert_equal(len(screen_launch(u'my_2nd_screen', u'top', fail=False)[u'stderr']), 0)
         assert_equal(len(screen_launch(u'my_2nd_screen', u'top', fail=False)[u'stderr']), 0)
         # List the launched screen sessions
         screens = screen_list(name=u'my_1st_screen')
         assert(len(screens) >= 1 and screens[0].endswith(u'my_1st_screen'))
         screens = screen_list(name=u'my_2nd_screen')
         assert(len(screens) >= 1 and screens[0].endswith(u'my_2nd_screen'))
     finally:
         # Cleanup
         kill_log = mock_cmd()
         screen_kill(name=u'my_1st_screen', log=kill_log)
         screen_kill(name=u'my_2nd_screen', log=kill_log)
         #raise NotImplementedError(kill_log.call_args_list)
         validate_list(kill_log.call_args_list, [
             r"call\(u*\"Execute \[u*'screen', u*'-ls', u*'my_1st_screen'\]\"\)",
             r"call\(u*\"Execute \[u*'screen', u*'-S', u*'\d+\.my_1st_screen', u*'-X', u*'quit'\]\"\)",
             r"call\(u*\"Execute \[u*'screen', u*'-ls', u*'my_2nd_screen'\]\"\)",
             r"call\(u*\"Execute \[u*'screen', u*'-S', u*'\d+\.my_2nd_screen', u*'-X', u*'quit'\]\"\)",
             r"call\(u*\"Execute \[u*'screen', u*'-S', u*'\d+\.my_2nd_screen', u*'-X', u*'quit'\]\"\)"])
Example #14
0
 def test_validate_list_fail_size(self):
     with self.assertRaises(IndexError):
         validate_list([1, 2], [1, 2, 3])
Example #15
0
 def test_validate_list_fail_size(self):
     with self.raises(IndexError):
         validate_list([1, 2], [1, 2, 3])
Example #16
0
 def test_validate_list_fail_value(self):
     with self.raises(ValueError):
         regexes = [r'\d+', r"call\(\[u*'my_var', recursive=(True|False)\]\)"]
         validate_list([10, "call(['my_var', recursive='error'])"], regexes)
Example #17
0
 def test_retry_first_try(self):
     log = mock.Mock()
     cmd('ls', log=log, tries=5, delay_min=1, delay_max=1)
     validate_list(log.call_args_list, [r"call\(u*'Execute ls'\)"])
def test_validate_list():
    regexes = [r'\d+', r"call\(\[u*'my_var', recursive=(True|False)\]\)"]
    validate_list([10, "call(['my_var', recursive=False])"], regexes)
def test_validate_list_fail_size():
    with pytest.raises(IndexError):
        validate_list([1, 2], [1, 2, 3])
def test_validate_list_fail_value():
    with pytest.raises(ValueError):
        regexes = [r'\d+', r"call\(\[u*'my_var', recursive=(True|False)\]\)"]
        validate_list([10, "call(['my_var', recursive='error'])"], regexes)
Example #21
0
 def test_validate_list_fail_value(self):
     regexes = [r'\d+', r"call\(\[u*'my_var', recursive=(True|False)\]\)"]
     validate_list([10, u"call([u'my_var', recursive='error'])"], regexes)
Example #22
0
 def test_validate_list_fail_size(self):
     validate_list([1, 2], [1, 2, 3])
Example #23
0
 def test_validate_list(self):
     regexes = [r'\d+', r"call\(\[u*'my_var', recursive=(True|False)\]\)"]
     validate_list([10, "call([u'my_var', recursive=False])"], regexes)
Example #24
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'\)"
     ])