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