2023-12-02 00:40:14 +02:00
|
|
|
import pytest
|
2024-01-19 11:47:38 +02:00
|
|
|
from talemate.util import ensure_dialog_format, clean_dialogue
|
2023-12-02 00:40:14 +02:00
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("input, expected", [
|
|
|
|
|
('Hello how are you?', 'Hello how are you?'),
|
|
|
|
|
('"Hello how are you?"', '"Hello how are you?"'),
|
|
|
|
|
('"Hello how are you?" he asks "I am fine"', '"Hello how are you?" *he asks* "I am fine"'),
|
|
|
|
|
('Hello how are you? *he asks* I am fine', '"Hello how are you?" *he asks* "I am fine"'),
|
|
|
|
|
|
|
|
|
|
('Hello how are you?" *he asks* I am fine', '"Hello how are you?" *he asks* "I am fine"'),
|
|
|
|
|
('Hello how are you?" *he asks I am fine', '"Hello how are you?" *he asks I am fine*'),
|
|
|
|
|
('Hello how are you?" *he asks* "I am fine" *', '"Hello how are you?" *he asks* "I am fine"'),
|
|
|
|
|
|
|
|
|
|
('"Hello how are you *he asks* I am fine"', '"Hello how are you" *he asks* "I am fine"'),
|
|
|
|
|
('This is a string without any markers', 'This is a string without any markers'),
|
|
|
|
|
('This is a string with an ending quote"', '"This is a string with an ending quote"'),
|
|
|
|
|
('This is a string with an ending asterisk*', '*This is a string with an ending asterisk*'),
|
|
|
|
|
('"Mixed markers*', '*Mixed markers*'),
|
2024-01-19 11:47:38 +02:00
|
|
|
('*narrative.* dialogue" *more narrative.*', '*narrative.* "dialogue" *more narrative.*'),
|
|
|
|
|
('"*messed up dialogue formatting.*" *some narration.*', '"messed up dialogue formatting." *some narration.*'),
|
|
|
|
|
('*"messed up narration formatting."* "some dialogue."', '"messed up narration formatting." "some dialogue."'),
|
2023-12-02 00:40:14 +02:00
|
|
|
])
|
|
|
|
|
def test_dialogue_cleanup(input, expected):
|
2024-01-19 11:47:38 +02:00
|
|
|
assert ensure_dialog_format(input) == expected
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("input, expected, main_name", [
|
|
|
|
|
("bob: says a sentence", "bob: says a sentence", "bob"),
|
|
|
|
|
("bob: says a sentence\nbob: says another sentence", "bob: says a sentence says another sentence", "bob"),
|
|
|
|
|
("bob: says a sentence with a colon: to explain something", "bob: says a sentence with a colon: to explain something", "bob"),
|
|
|
|
|
("bob: i have a riddle for you, alice: the riddle", "bob: i have a riddle for you, alice: the riddle", "bob"),
|
|
|
|
|
("bob: says something\nalice: says something else", "bob: says something", "bob"),
|
|
|
|
|
("bob: says a sentence. then a", "bob: says a sentence.", "bob"),
|
|
|
|
|
])
|
|
|
|
|
def test_clean_dialogue(input, expected, main_name):
|
|
|
|
|
others = ["alice", "charlie"]
|
|
|
|
|
assert clean_dialogue(input, main_name) == expected
|