Группы: ТОП-имена и порядок как в таблице
В таблице появились группы с «ТОП» в имени (ИВТ-ТОП-11БО, ИТ-ТОП-12БО): шаблон требовал цифру сразу после первого дефиса, поэтому такие столбцы пропускались целиком. Теперь имя группы — буквенные части через дефис, номер потока и необязательный суффикс, т.е. распознаются и «ИВТ-11БО», и «ПИЭ-13МО», и «ИВТ-ТОП-11БО» (похожие заголовки с пробелами — нет). GET /groups больше не сортирует по алфавиту с приоритетом БО/МО, а отдаёт группы в порядке столбцов таблицы — как просили, «как в расписании». Состав групп (появление/переименование/скрытие) подхватывается сам при следующем обновлении, потому что источник истины — заголовок листа. Тесты: ТОП-имена + порядок столбцов, отсев похожих не-групповых заголовков.
This commit is contained in:
@@ -23,6 +23,28 @@ def test_hidden_group_excluded(data):
|
||||
assert set(data) == {"ИВТ-11БО", "ИТ-12БО"}
|
||||
|
||||
|
||||
def test_group_names_with_top_and_sheet_order():
|
||||
"""ТОП-группы распознаются, а порядок групп — как столбцы в таблице."""
|
||||
sheets = fixture_sheets()
|
||||
header = sheets[parsing.MAIN_SHEET].rows[0]
|
||||
header[6] = "ИТ-ТОП-11БО\nсеместр до 11.01.27"
|
||||
header[7] = "АА-11БО\nсеместр до 29.12.26"
|
||||
|
||||
data = parsing.parse_schedule(make_sheets(sheets))
|
||||
assert list(data) == ["ИТ-ТОП-11БО", "АА-11БО"] # не по алфавиту, а по столбцам
|
||||
assert data["ИТ-ТОП-11БО"]["days"]["понедельник"][1]["ч"]
|
||||
|
||||
|
||||
def test_not_a_group_headers_ignored():
|
||||
"""Похожие, но не групповые заголовки столбцами групп не становятся."""
|
||||
sheets = fixture_sheets()
|
||||
header = sheets[parsing.MAIN_SHEET].rows[0]
|
||||
header[9] = "ИВТ 11БО" # пробел вместо дефиса — это не имя группы
|
||||
|
||||
data = parsing.parse_schedule(make_sheets(sheets))
|
||||
assert set(data) == {"ИВТ-11БО", "ИТ-12БО"}
|
||||
|
||||
|
||||
def test_semester(data):
|
||||
assert data["ИВТ-11БО"]["semester_until"] == "11.01.27"
|
||||
assert data["ИТ-12БО"]["semester_until"] == "29.12.26"
|
||||
|
||||
Reference in New Issue
Block a user