Парсер: замечания отдельной строкой — уровня всей ячейки
В ячейке с несколькими занятиями (курсы по выбору) красная заметка, занимающая строку(и) целиком, относится ко всем занятиям ячейки (пара отменяется целиком) и раздаётся каждому занятию. Заметка, написанная в одной строке с предметом/аудиторией, остаётся привязанной к своему занятию. Многострочные standalone-заметки сохраняют переводы строк. Кейс: ПИЭ-13МО, понедельник, 5-я пара. Diff по 33 группам: затронуто только поле note в multi-lesson ячейках; порядок «inline->ячейка».
This commit is contained in:
@@ -347,3 +347,29 @@ def test_full_name_inline_after_subject():
|
||||
assert result["subject"] == "Основы тестирования веб-приложений"
|
||||
assert result["teacher"] == "Денис Верховцев (Сигма)"
|
||||
assert result["room"] == "онлайн"
|
||||
|
||||
|
||||
def test_cell_note_applies_to_all_lessons():
|
||||
# ПИЭ-13МО, понедельник, 5-я пара: два курса по выбору, заметка о паре
|
||||
raw = (
|
||||
"к.в. Управление ИТ-проектами\nЕрофеев Александр Александрович (ПравоТех)\nонлайн\n"
|
||||
"к.в. Математические методы и модели принятия решения Наука онлайн\n"
|
||||
+ R + "14.09 пары не будет" + Cc
|
||||
)
|
||||
ls = lessons(raw)
|
||||
assert len(ls) == 2
|
||||
assert all(l["note"] == "14.09 пары не будет" for l in ls)
|
||||
assert {l["subject"] for l in ls} == {
|
||||
"Управление ИТ-проектами",
|
||||
"Математические методы и модели принятия решения",
|
||||
}
|
||||
|
||||
|
||||
def test_inline_note_stays_with_its_lesson():
|
||||
raw = (
|
||||
"Русский язык\nШаманова М.В.\nауд. 312 " + R + "с 7.09 по 20.09 пары не будет" + Cc
|
||||
+ "\n\nМатематика\nСмирнов А.В.\nауд. 203"
|
||||
)
|
||||
ls = lessons(raw)
|
||||
assert ls[0]["note"] == "с 7.09 по 20.09 пары не будет"
|
||||
assert ls[1]["note"] == ""
|
||||
|
||||
Reference in New Issue
Block a user