Server IP : 80.241.246.6 / Your IP : 216.73.216.129 Web Server : Apache/2.4.25 (Debian) System : Linux kharagauli 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 User : www-data ( 33) PHP Version : 7.0.33-0+deb9u12 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/letsencrypt/certbot/tests/compat/ |
Upload File : |
"""Tests for certbot.compat.misc""" try: import mock except ImportError: # pragma: no cover from unittest import mock # type: ignore import unittest from certbot.compat import os class ExecuteTest(unittest.TestCase): """Tests for certbot.compat.misc.execute_command.""" @classmethod def _call(cls, *args, **kwargs): from certbot.compat.misc import execute_command return execute_command(*args, **kwargs) def test_it(self): for returncode in range(0, 2): for stdout in ("", "Hello World!",): for stderr in ("", "Goodbye Cruel World!"): self._test_common(returncode, stdout, stderr) def _test_common(self, returncode, stdout, stderr): given_command = "foo" given_name = "foo-hook" with mock.patch("certbot.compat.misc.subprocess.Popen") as mock_popen: mock_popen.return_value.communicate.return_value = (stdout, stderr) mock_popen.return_value.returncode = returncode with mock.patch("certbot.compat.misc.logger") as mock_logger: self.assertEqual(self._call(given_name, given_command), (stderr, stdout)) executed_command = mock_popen.call_args[1].get( "args", mock_popen.call_args[0][0]) if os.name == 'nt': expected_command = ['powershell.exe', '-Command', given_command] else: expected_command = given_command self.assertEqual(executed_command, expected_command) mock_logger.info.assert_any_call("Running %s command: %s", given_name, given_command) if stdout: mock_logger.info.assert_any_call(mock.ANY, mock.ANY, mock.ANY, stdout) if stderr or returncode: self.assertTrue(mock_logger.error.called)