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 | |