참고소스 수정본
This commit is contained in:
73
참고/instructor-main/tests/test_patch.py
Normal file
73
참고/instructor-main/tests/test_patch.py
Normal file
@@ -0,0 +1,73 @@
|
||||
import functools
|
||||
|
||||
from openai import AsyncOpenAI, OpenAI
|
||||
|
||||
import instructor
|
||||
from instructor.utils import is_async
|
||||
|
||||
|
||||
def test_patch_completes_successfully():
|
||||
instructor.patch(OpenAI())
|
||||
|
||||
|
||||
def test_apatch_completes_successfully():
|
||||
instructor.apatch(AsyncOpenAI())
|
||||
|
||||
|
||||
def test_is_async_returns_true_if_function_is_async():
|
||||
async def async_function():
|
||||
pass
|
||||
|
||||
assert is_async(async_function) is True
|
||||
|
||||
|
||||
def test_is_async_returns_false_if_function_is_not_async():
|
||||
def sync_function():
|
||||
pass
|
||||
|
||||
assert is_async(sync_function) is False
|
||||
|
||||
|
||||
def test_is_async_returns_true_if_wrapped_function_is_async():
|
||||
async def async_function():
|
||||
pass
|
||||
|
||||
@functools.wraps(async_function)
|
||||
def wrapped_function():
|
||||
pass
|
||||
|
||||
assert is_async(wrapped_function) is True
|
||||
|
||||
|
||||
def test_is_async_returns_true_if_double_wrapped_function_is_async():
|
||||
async def async_function():
|
||||
pass
|
||||
|
||||
@functools.wraps(async_function)
|
||||
def wrapped_function():
|
||||
pass
|
||||
|
||||
@functools.wraps(wrapped_function)
|
||||
def double_wrapped_function():
|
||||
pass
|
||||
|
||||
assert is_async(double_wrapped_function) is True
|
||||
|
||||
|
||||
def test_is_async_returns_true_if_triple_wrapped_function_is_async():
|
||||
async def async_function():
|
||||
pass
|
||||
|
||||
@functools.wraps(async_function)
|
||||
def wrapped_function():
|
||||
pass
|
||||
|
||||
@functools.wraps(wrapped_function)
|
||||
def double_wrapped_function():
|
||||
pass
|
||||
|
||||
@functools.wraps(double_wrapped_function)
|
||||
def triple_wrapped_function():
|
||||
pass
|
||||
|
||||
assert is_async(triple_wrapped_function) is True
|
||||
Reference in New Issue
Block a user