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