instructor
73 строки · 1.5 Кб
1import functools
2
3from openai import AsyncOpenAI, OpenAI
4
5import instructor
6from instructor.utils import is_async
7
8
9def test_patch_completes_successfully():
10instructor.patch(OpenAI())
11
12
13def test_apatch_completes_successfully():
14instructor.apatch(AsyncOpenAI())
15
16
17def test_is_async_returns_true_if_function_is_async():
18async def async_function():
19pass
20
21assert is_async(async_function) is True
22
23
24def test_is_async_returns_false_if_function_is_not_async():
25def sync_function():
26pass
27
28assert is_async(sync_function) is False
29
30
31def test_is_async_returns_true_if_wrapped_function_is_async():
32async def async_function():
33pass
34
35@functools.wraps(async_function)
36def wrapped_function():
37pass
38
39assert is_async(wrapped_function) is True
40
41
42def test_is_async_returns_true_if_double_wrapped_function_is_async():
43async def async_function():
44pass
45
46@functools.wraps(async_function)
47def wrapped_function():
48pass
49
50@functools.wraps(wrapped_function)
51def double_wrapped_function():
52pass
53
54assert is_async(double_wrapped_function) is True
55
56
57def test_is_async_returns_true_if_triple_wrapped_function_is_async():
58async def async_function():
59pass
60
61@functools.wraps(async_function)
62def wrapped_function():
63pass
64
65@functools.wraps(wrapped_function)
66def double_wrapped_function():
67pass
68
69@functools.wraps(double_wrapped_function)
70def triple_wrapped_function():
71pass
72
73assert is_async(triple_wrapped_function) is True
74