instructor

Форк
0
/
test_patch.py 
73 строки · 1.5 Кб
1
import functools
2

3
from openai import AsyncOpenAI, OpenAI
4

5
import instructor
6
from instructor.utils import is_async
7

8

9
def test_patch_completes_successfully():
10
    instructor.patch(OpenAI())
11

12

13
def test_apatch_completes_successfully():
14
    instructor.apatch(AsyncOpenAI())
15

16

17
def test_is_async_returns_true_if_function_is_async():
18
    async def async_function():
19
        pass
20

21
    assert is_async(async_function) is True
22

23

24
def test_is_async_returns_false_if_function_is_not_async():
25
    def sync_function():
26
        pass
27

28
    assert is_async(sync_function) is False
29

30

31
def test_is_async_returns_true_if_wrapped_function_is_async():
32
    async def async_function():
33
        pass
34

35
    @functools.wraps(async_function)
36
    def wrapped_function():
37
        pass
38

39
    assert is_async(wrapped_function) is True
40

41

42
def test_is_async_returns_true_if_double_wrapped_function_is_async():
43
    async def async_function():
44
        pass
45

46
    @functools.wraps(async_function)
47
    def wrapped_function():
48
        pass
49

50
    @functools.wraps(wrapped_function)
51
    def double_wrapped_function():
52
        pass
53

54
    assert is_async(double_wrapped_function) is True
55

56

57
def test_is_async_returns_true_if_triple_wrapped_function_is_async():
58
    async def async_function():
59
        pass
60

61
    @functools.wraps(async_function)
62
    def wrapped_function():
63
        pass
64

65
    @functools.wraps(wrapped_function)
66
    def double_wrapped_function():
67
        pass
68

69
    @functools.wraps(double_wrapped_function)
70
    def triple_wrapped_function():
71
        pass
72

73
    assert is_async(triple_wrapped_function) is True
74

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.