Spaces:
Sleeping
Sleeping
import datetime | |
from unittest.mock import patch | |
from streamlit.testing.v1 import AppTest | |
from openai.types.chat import ChatCompletionMessage | |
from openai.types.chat.chat_completion import ChatCompletion, Choice | |
# See https://github.com/openai/openai-python/issues/715#issuecomment-1809203346 | |
def create_chat_completion(response: str, role: str = "assistant") -> ChatCompletion: | |
return ChatCompletion( | |
id="foo", | |
model="gpt-3.5-turbo", | |
object="chat.completion", | |
choices=[ | |
Choice( | |
finish_reason="stop", | |
index=0, | |
message=ChatCompletionMessage( | |
content=response, | |
role=role, | |
), | |
) | |
], | |
created=int(datetime.datetime.now().timestamp()), | |
) | |
def test_Chatbot(openai_create): | |
at = AppTest.from_file("Chatbot.py").run() | |
assert not at.exception | |
at.chat_input[0].set_value("Do you know any jokes?").run() | |
assert at.info[0].value == "Please add your OpenAI API key to continue." | |
JOKE = "Why did the chicken cross the road? To get to the other side." | |
openai_create.return_value = create_chat_completion(JOKE) | |
at.text_input(key="chatbot_api_key").set_value("sk-...") | |
at.chat_input[0].set_value("Do you know any jokes?").run() | |
print(at) | |
assert at.chat_message[1].markdown[0].value == "Do you know any jokes?" | |
assert at.chat_message[2].markdown[0].value == JOKE | |
assert at.chat_message[2].avatar == "assistant" | |
assert not at.exception | |
def test_Langchain_Quickstart(langchain_llm): | |
at = AppTest.from_file("pages/3_Langchain_Quickstart.py").run() | |
assert at.info[0].value == "Please add your OpenAI API key to continue." | |
RESPONSE = "1. The best way to learn how to code is by practicing..." | |
langchain_llm.return_value = RESPONSE | |
at.sidebar.text_input[0].set_value("sk-...") | |
at.button[0].set_value(True).run() | |
print(at) | |
assert at.info[0].value == RESPONSE | |