Files
instructor/tests/test_function_calls.py
T
Jason Liu 5d7b1a4ee0 Better default descriptions (#62)
* better desc

* add better dsc test
2023-07-17 17:13:46 +08:00

43 lines
1.0 KiB
Python

import pytest
from pydantic import BaseModel
from openai_function_call import openai_schema, OpenAISchema
def test_openai_schema():
@openai_schema
class Dataframe(BaseModel):
"""
Class representing a dataframe. This class is used to convert
data into a frame that can be used by pandas.
"""
data: str
columns: str
def to_pandas(self):
pass
assert hasattr(Dataframe, "openai_schema")
assert hasattr(Dataframe, "from_response")
assert hasattr(Dataframe, "to_pandas")
assert Dataframe.openai_schema["name"] == "Dataframe" # type: ignore
def test_openai_schema_raises_error():
with pytest.raises(TypeError, match="must be a subclass of pydantic.BaseModel"):
@openai_schema
class Dummy:
pass
def test_no_docstring():
class Dummy(OpenAISchema):
attr: str
assert (
Dummy.openai_schema["description"]
== "Correctly extracted `Dummy` with all the required parameters with correct types"
)