def test_starttls_reject_incorrect_arguments(self): ssl_context = unittest.mock.MagicMock() post_handshake_callback = unittest.mock.MagicMock() self.xmlstream.transport = object() with self.assertRaisesRegex(AssertionError, "mismatched starttls argument"): run_coroutine( asyncio.gather( self.xmlstream.starttls(object(), post_handshake_callback), self.xmlstream.run_test([ XMLStreamMock.STARTTLS(ssl_context, post_handshake_callback) ], ))) with self.assertRaisesRegex(AssertionError, "mismatched starttls argument"): run_coroutine( asyncio.gather( self.xmlstream.starttls(ssl_context, object()), self.xmlstream.run_test([ XMLStreamMock.STARTTLS(ssl_context, post_handshake_callback) ], )))
def test_starttls_propagates_exception_from_callback(self): ssl_context = unittest.mock.MagicMock() post_handshake_callback = unittest.mock.MagicMock() self.xmlstream.transport = object() exc = ValueError() post_handshake_callback.side_effect = exc caught_exception, other_result = run_coroutine( asyncio.gather( self.xmlstream.starttls(ssl_context, post_handshake_callback), self.xmlstream.run_test( [ XMLStreamMock.STARTTLS( ssl_context, post_handshake_callback) ], ), return_exceptions=True ) ) self.assertIs(caught_exception, exc) self.assertIs(other_result, None)
def test_starttls_without_callback(self): ssl_context = unittest.mock.MagicMock() self.xmlstream.transport = object() run_coroutine( asyncio.gather( self.xmlstream.starttls(ssl_context, None), self.xmlstream.run_test( [XMLStreamMock.STARTTLS(ssl_context, None)], )))
def test_starttls(self): ssl_context = unittest.mock.MagicMock() post_handshake_callback = unittest.mock.MagicMock() self.xmlstream.transport = object() run_coroutine( asyncio.gather( self.xmlstream.starttls(ssl_context, post_handshake_callback), self.xmlstream.run_test([ XMLStreamMock.STARTTLS(ssl_context, post_handshake_callback) ], ))) post_handshake_callback.assert_called_once_with( self.xmlstream.transport)