def test_hijack_tty_ok_ssl_error(self, fake_Terminal, fake_get_stdin_pump, fake_select): """``dockerpty.pty`` PseudoTerminal '_hijack_tty' can handle some SSL errors""" fake_select.return_value = ([], []) fake_client = MagicMock() fake_run_operation = MagicMock() fake_pump = MagicMock() ssl_error = SSLError() ssl_error.strerror = 'The operation did not complete' fake_pump.do_write.side_effect = [ssl_error, MagicMock()] fake_pumps = [fake_pump] fake_select.return_value = ([fake_pump], [fake_pump]) pty.PseudoTerminal(fake_client, fake_run_operation)._hijack_tty(fake_pumps)
def test_hijack_tty_bad_ssl_error(self, fake_Terminal, fake_get_stdin_pump, fake_select): """``dockerpty.pty`` PseudoTerminal '_hijack_tty' raises if it catches an expected SSL error""" fake_select.return_value = ([], []) fake_client = MagicMock() fake_run_operation = MagicMock() fake_pump = MagicMock() ssl_error = SSLError() ssl_error.strerror = 'doh' fake_pump.do_write.side_effect = [ssl_error, MagicMock()] fake_pumps = [fake_pump] fake_select.return_value = ([fake_pump], [fake_pump]) with self.assertRaises(SSLError): pty.PseudoTerminal(fake_client, fake_run_operation)._hijack_tty(fake_pumps)