Spaces:
Sleeping
Sleeping
import json | |
from app.models import Card, Message | |
# Tests for Card and Message models | |
def test_card_model(): | |
card = Card(question="What is Python?", answer="A programming language") | |
assert card.question == "What is Python?" | |
assert card.answer == "A programming language" | |
def test_message_model(): | |
cards = [ | |
Card(question="What is AI?", answer="Artificial Intelligence"), | |
Card(question="What is ML?", answer="Machine Learning") | |
] | |
message = Message(role="assistant", content=cards) | |
assert message.role == "assistant" | |
assert len(message.content) == 2 | |
assert message.content[0].question == "What is AI?" | |
def test_message_content_json_parsing(): | |
json_content = '[{"question": "Q1", "answer": "A1"}, {"question": "Q2", "answer": "A2"}]' | |
message = Message(role="assistant", content=json_content) | |
assert len(message.content) == 2 | |
assert message.content[0].question == "Q1" | |
def test_message_content_to_json(): | |
cards = [Card(question="Q1", answer="A1"), Card(question="Q2", answer="A2")] | |
message = Message(role="assistant", content=cards) | |
json_output = message.content_to_json() | |
assert json.loads(json_output) == [ | |
{"question": "Q1", "answer": "A1"}, | |
{"question": "Q2", "answer": "A2"} | |
] | |
# failed test | |
def test_message_content_to_csv(): | |
cards = [Card(question="Q1", answer="A1"), Card(question="Q2", answer="A2")] | |
message = Message(role="assistant", content=cards) | |
csv_output = message.content_to_csv() | |
expected_output = "Question,Answer\nQ1,A1\nQ2,A2\n" # Use Unix-style line endings | |
print(csv_output) # Optional: for debugging purposes | |
assert csv_output == expected_output | |