File size: 1,701 Bytes
8428312
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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