Compare commits
7 Commits
be5c95bbdf
...
75a863ed13
| Author | SHA1 | Date | |
|---|---|---|---|
| 75a863ed13 | |||
| 6a81b9b146 | |||
| 85375346f4 | |||
| 24476b49f7 | |||
| 199c8beb85 | |||
| 025fba5b96 | |||
| e5e7ba16de |
@ -188,7 +188,7 @@ class Message():
|
||||
|
||||
tags: set[Tag] = set()
|
||||
question: Question
|
||||
answer: Optional[Answer] = None
|
||||
answer: Answer
|
||||
if file_path.suffix == '.txt':
|
||||
with open(file_path, "r") as fd:
|
||||
try:
|
||||
@ -201,12 +201,9 @@ class Message():
|
||||
return None
|
||||
text = fd.read().strip().split('\n')
|
||||
question_idx = text.index(Question.txt_header) + 1
|
||||
try:
|
||||
answer_idx = text.index(Answer.txt_header)
|
||||
question = Question.from_list(text[question_idx:answer_idx])
|
||||
answer = Answer.from_list(text[answer_idx + 1:])
|
||||
except ValueError:
|
||||
question = Question.from_list(text[question_idx:])
|
||||
answer_idx = text.index(Answer.txt_header)
|
||||
question = Question.from_list(text[question_idx:answer_idx])
|
||||
answer = Answer.from_list(text[answer_idx + 1:])
|
||||
return cls(question, answer, tags, file_path)
|
||||
else: # '.yaml'
|
||||
with open(file_path, "r") as fd:
|
||||
|
||||
@ -207,7 +207,7 @@ This is a question.
|
||||
message = Message.from_file(self.file_path)
|
||||
self.assertIsNotNone(message)
|
||||
self.assertIsInstance(message, Message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), {Tag('tag1'), Tag('tag2')})
|
||||
@ -217,27 +217,17 @@ This is a question.
|
||||
message = Message.from_file(self.file_path_no_tags)
|
||||
self.assertIsNotNone(message)
|
||||
self.assertIsInstance(message, Message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), set())
|
||||
self.assertEqual(message.file_path, self.file_path_no_tags)
|
||||
|
||||
def test_from_file_txt_no_answer(self) -> None:
|
||||
message = Message.from_file(self.file_path_no_answer)
|
||||
self.assertIsInstance(message, Message)
|
||||
self.assertIsNotNone(message)
|
||||
if message: # mypy bug
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), {Tag('tag1'), Tag('tag2')})
|
||||
self.assertEqual(message.file_path, self.file_path_no_answer)
|
||||
self.assertIsNone(message.answer)
|
||||
|
||||
def test_from_file_txt_tags_match(self) -> None:
|
||||
message = Message.from_file(self.file_path, tags_or={Tag('tag1')})
|
||||
self.assertIsNotNone(message)
|
||||
self.assertIsInstance(message, Message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), {Tag('tag1'), Tag('tag2')})
|
||||
@ -255,7 +245,7 @@ This is a question.
|
||||
message = Message.from_file(self.file_path_no_tags, tags_not={Tag('tag1')})
|
||||
self.assertIsNotNone(message)
|
||||
self.assertIsInstance(message, Message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), set())
|
||||
@ -310,7 +300,7 @@ class MessageFromFileYamlTestCase(CmmTestCase):
|
||||
message = Message.from_file(self.file_path)
|
||||
self.assertIsInstance(message, Message)
|
||||
self.assertIsNotNone(message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), {Tag('tag1'), Tag('tag2')})
|
||||
@ -320,7 +310,7 @@ class MessageFromFileYamlTestCase(CmmTestCase):
|
||||
message = Message.from_file(self.file_path_no_tags)
|
||||
self.assertIsInstance(message, Message)
|
||||
self.assertIsNotNone(message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), set())
|
||||
@ -330,11 +320,10 @@ class MessageFromFileYamlTestCase(CmmTestCase):
|
||||
message = Message.from_file(self.file_path_no_answer)
|
||||
self.assertIsInstance(message, Message)
|
||||
self.assertIsNotNone(message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), {Tag('tag1'), Tag('tag2')})
|
||||
self.assertEqual(message.file_path, self.file_path_no_answer)
|
||||
self.assertIsNone(message.answer)
|
||||
|
||||
def test_from_file_not_exists(self) -> None:
|
||||
file_not_exists = pathlib.Path("example.yaml")
|
||||
@ -346,7 +335,7 @@ class MessageFromFileYamlTestCase(CmmTestCase):
|
||||
message = Message.from_file(self.file_path, tags_or={Tag('tag1')})
|
||||
self.assertIsNotNone(message)
|
||||
self.assertIsInstance(message, Message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), {Tag('tag1'), Tag('tag2')})
|
||||
@ -364,7 +353,7 @@ class MessageFromFileYamlTestCase(CmmTestCase):
|
||||
message = Message.from_file(self.file_path_no_tags, tags_not={Tag('tag1')})
|
||||
self.assertIsNotNone(message)
|
||||
self.assertIsInstance(message, Message)
|
||||
if message: # mypy bug
|
||||
if message:
|
||||
self.assertEqual(message.question, 'This is a question.')
|
||||
self.assertEqual(message.answer, 'This is an answer.')
|
||||
self.assertSetEqual(cast(set[Tag], message.tags), set())
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user