OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
certbot
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/25/2021 01:14:26 PM
rwxr-xr-x
📄
__init__.py
20 bytes
02/07/2019 09:20:30 PM
rw-r--r--
📁
__pycache__
-
05/25/2021 01:14:27 PM
rwxr-xr-x
📄
account_test.py
14.45 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
acme_util.py
3.18 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
auth_handler_test.py
24 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
cert_manager_test.py
28.07 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
cli_test.py
19.94 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
client_test.py
28.76 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
compat_test.py
736 bytes
02/07/2019 09:20:30 PM
rw-r--r--
📄
configuration_test.py
6.82 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
crypto_util_test.py
13.56 KB
02/07/2019 09:20:30 PM
rw-r--r--
📁
display
-
05/25/2021 01:14:27 PM
rwxr-xr-x
📄
eff_test.py
5.94 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
error_handler_test.py
5.31 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
errors_test.py
1.8 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
hook_test.py
16.67 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
lock_test.py
3.84 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
log_test.py
14.95 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
main_test.py
82.52 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
notify_test.py
2.07 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
ocsp_test.py
6.27 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
renewal_test.py
4.18 KB
12/18/2020 08:47:58 PM
rw-r--r--
📄
renewupdater_test.py
5.32 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
reporter_test.py
2.73 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
reverter_test.py
18.7 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
storage_test.py
42.89 KB
02/07/2019 09:20:30 PM
rw-r--r--
📁
testdata
-
05/25/2021 01:14:26 PM
rwxr-xr-x
📄
util.py
14.12 KB
02/07/2019 09:20:30 PM
rw-r--r--
📄
util_test.py
21.58 KB
02/07/2019 09:20:30 PM
rw-r--r--
Editing: error_handler_test.py
Close
"""Tests for certbot.error_handler.""" import contextlib import os import signal import sys import unittest import mock # pylint: disable=unused-import, no-name-in-module from acme.magic_typing import Callable, Dict, Union # pylint: enable=unused-import, no-name-in-module import certbot.tests.util as test_util def get_signals(signums): """Get the handlers for an iterable of signums.""" return dict((s, signal.getsignal(s)) for s in signums) def set_signals(sig_handler_dict): """Set the signal (keys) with the handler (values) from the input dict.""" for s, h in sig_handler_dict.items(): signal.signal(s, h) @contextlib.contextmanager def signal_receiver(signums): """Context manager to catch signals""" signals = [] prev_handlers = get_signals(signums) # type: Dict[int, Union[int, None, Callable]] set_signals(dict((s, lambda s, _: signals.append(s)) for s in signums)) yield signals set_signals(prev_handlers) def send_signal(signum): """Send the given signal""" os.kill(os.getpid(), signum) class ErrorHandlerTest(unittest.TestCase): """Tests for certbot.error_handler.ErrorHandler.""" def setUp(self): from certbot import error_handler self.init_func = mock.MagicMock() self.init_args = set((42,)) self.init_kwargs = {'foo': 'bar'} self.handler = error_handler.ErrorHandler(self.init_func, *self.init_args, **self.init_kwargs) # pylint: disable=protected-access self.signals = error_handler._SIGNALS def test_context_manager(self): exception_raised = False try: with self.handler: raise ValueError except ValueError: exception_raised = True self.assertTrue(exception_raised) self.init_func.assert_called_once_with(*self.init_args, **self.init_kwargs) # On Windows, this test kills pytest itself ! @test_util.broken_on_windows def test_context_manager_with_signal(self): init_signals = get_signals(self.signals) with signal_receiver(self.signals) as signals_received: with self.handler: should_be_42 = 42 send_signal(self.signals[0]) should_be_42 *= 10 # check execution stoped when the signal was sent self.assertEqual(42, should_be_42) # assert signals were caught self.assertEqual([self.signals[0]], signals_received) # assert the error handling function was just called once self.init_func.assert_called_once_with(*self.init_args, **self.init_kwargs) for signum in self.signals: self.assertEqual(init_signals[signum], signal.getsignal(signum)) def test_bad_recovery(self): bad_func = mock.MagicMock(side_effect=[ValueError]) self.handler.register(bad_func) try: with self.handler: raise ValueError except ValueError: pass self.init_func.assert_called_once_with(*self.init_args, **self.init_kwargs) bad_func.assert_called_once_with() # On Windows, this test kills pytest itself ! @test_util.broken_on_windows def test_bad_recovery_with_signal(self): sig1 = self.signals[0] sig2 = self.signals[-1] bad_func = mock.MagicMock(side_effect=lambda: send_signal(sig1)) self.handler.register(bad_func) with signal_receiver(self.signals) as signals_received: with self.handler: send_signal(sig2) self.assertEqual([sig2, sig1], signals_received) self.init_func.assert_called_once_with(*self.init_args, **self.init_kwargs) bad_func.assert_called_once_with() def test_sysexit_ignored(self): try: with self.handler: sys.exit(0) except SystemExit: pass self.assertFalse(self.init_func.called) def test_regular_exit(self): func = mock.MagicMock() self.handler.register(func) with self.handler: pass self.init_func.assert_not_called() func.assert_not_called() class ExitHandlerTest(ErrorHandlerTest): """Tests for certbot.error_handler.ExitHandler.""" def setUp(self): from certbot import error_handler super(ExitHandlerTest, self).setUp() self.handler = error_handler.ExitHandler(self.init_func, *self.init_args, **self.init_kwargs) def test_regular_exit(self): func = mock.MagicMock() self.handler.register(func) with self.handler: pass self.init_func.assert_called_once_with(*self.init_args, **self.init_kwargs) func.assert_called_once_with() # On Windows, this test kills pytest itself ! @test_util.broken_on_windows def test_bad_recovery_with_signal(self): super(ExitHandlerTest, self).test_bad_recovery_with_signal() if __name__ == "__main__": unittest.main() # pragma: no cover