|
- from threading import Thread
- from typing import Any, List
-
- from autogen.io import IOConsole, IOStream, IOWebsockets
-
-
- class TestIOStream:
- def test_initial_default_io_stream(self) -> None:
- assert isinstance(IOStream.get_default(), IOConsole)
-
- def test_set_default_io_stream(self) -> None:
- class MyIOStream(IOStream):
- def print(self, *objects: Any, sep: str = " ", end: str = "\n", flush: bool = False) -> None:
- pass
-
- def input(self, prompt: str = "", *, password: bool = False) -> str:
- return "Hello, World!"
-
- assert isinstance(IOStream.get_default(), IOConsole)
-
- with IOStream.set_default(MyIOStream()):
- assert isinstance(IOStream.get_default(), MyIOStream)
-
- with IOStream.set_default(IOConsole()):
- assert isinstance(IOStream.get_default(), IOConsole)
-
- assert isinstance(IOStream.get_default(), MyIOStream)
-
- assert isinstance(IOStream.get_default(), IOConsole)
-
- def test_get_default_on_new_thread(self) -> None:
- exceptions: List[Exception] = []
-
- def on_new_thread(exceptions: List[Exception] = exceptions) -> None:
- try:
- assert isinstance(IOStream.get_default(), IOConsole)
- except Exception as e:
- exceptions.append(e)
-
- # create a new thread and run the function
- thread = Thread(target=on_new_thread)
-
- thread.start()
-
- # get exception from the thread
- thread.join()
-
- if exceptions:
- raise exceptions[0]
|