Commit 2e7e897a

Stainless Bot <107565488+stainless-bot@users.noreply.github.com>
2023-11-29 20:25:50
chore(internal): add tests for proxy change (#899)
1 parent 84c85bd
Changed files (2)
tests
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
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"