diff --git a/tests/lib/test_old_api.py b/tests/lib/test_old_api.py new file mode 100644 index 0000000000..261b8acb94 --- /dev/null +++ b/tests/lib/test_old_api.py @@ -0,0 +1,17 @@ +import pytest + +import openai +from openai.lib._old_api import APIRemovedInV1 + + +def test_basic_attribute_access_works() -> None: + for attr in dir(openai): + dir(getattr(openai, attr)) + + +def test_helpful_error_is_raised() -> None: + with pytest.raises(APIRemovedInV1): + openai.Completion.create() # type: ignore + + with pytest.raises(APIRemovedInV1): + openai.ChatCompletion.create() # type: ignore diff --git a/tests/test_utils/test_proxy.py b/tests/test_utils/test_proxy.py new file mode 100644 index 0000000000..57c059150d --- /dev/null +++ b/tests/test_utils/test_proxy.py @@ -0,0 +1,23 @@ +import operator +from typing import Any +from typing_extensions import override + +from openai._utils import LazyProxy + + +class RecursiveLazyProxy(LazyProxy[Any]): + @override + def __load__(self) -> Any: + return self + + def __call__(self, *_args: Any, **_kwds: Any) -> Any: + raise RuntimeError("This should never be called!") + + +def test_recursive_proxy() -> None: + proxy = RecursiveLazyProxy() + assert repr(proxy) == "RecursiveLazyProxy" + assert str(proxy) == "RecursiveLazyProxy" + assert dir(proxy) == [] + assert getattr(type(proxy), "__name__") == "RecursiveLazyProxy" + assert type(operator.attrgetter("name.foo.bar.baz")(proxy)).__name__ == "RecursiveLazyProxy"