41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
import unittest
|
|
|
|
from ipython_shell.transport import JupyterTransport, KernelMessage
|
|
|
|
|
|
class TransportTests(unittest.TestCase):
|
|
def test_kernel_message_keeps_content_and_buffers(self):
|
|
message = KernelMessage(
|
|
msg_type="display_data",
|
|
parent_id="call-1",
|
|
content={"data": {"text/plain": "42"}},
|
|
buffers=[b"binary"],
|
|
)
|
|
|
|
self.assertEqual(message.parent_id, "call-1")
|
|
self.assertEqual(message.content["data"], {"text/plain": "42"})
|
|
self.assertEqual(message.buffers, [b"binary"])
|
|
|
|
|
|
class AsyncTransportTests(unittest.IsolatedAsyncioTestCase):
|
|
async def test_transport_executes_and_returns_execute_reply(self):
|
|
transport = JupyterTransport()
|
|
await transport.start()
|
|
try:
|
|
call_id = await transport.execute("2 + 2")
|
|
messages = [
|
|
message async for message in transport.messages_for(call_id)
|
|
]
|
|
finally:
|
|
await transport.shutdown()
|
|
|
|
self.assertTrue(
|
|
any(message.msg_type == "execute_result" for message in messages)
|
|
)
|
|
self.assertEqual(messages[-1].msg_type, "execute_reply")
|
|
self.assertEqual(messages[-1].content["status"], "ok")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|