Обновил структуру проекта

This commit is contained in:
Даниил Грабарь
2026-10-01 11:59:59 +10:00
parent 25f4255404
commit 7c8583ceb9
14 changed files with 544 additions and 584 deletions
+48 -2
View File
@@ -39,7 +39,7 @@ def live(tmp_path_factory):
def page():
with sync_playwright() as p:
channel=os.environ.get('PLAYWRIGHT_CHANNEL')
browser=p.chromium.launch(headless=True,**({'channel':channel} if channel else {}))
browser=p.chromium.launch(headless=True,executable_path=os.environ.get('PLAYWRIGHT_EXECUTABLE_PATH'),**({'channel':channel} if channel else {}))
yield browser.new_page(viewport={'width':1440,'height':1000})
browser.close()
@@ -60,7 +60,7 @@ def test_teacher_import_and_publish(page,live):
expect(page.locator('#import-save')).to_be_enabled()
press(page,'Сохранить и настроить →',page.get_by_text('Включить это представление',exact=True))
page.locator('input[type=checkbox]').first.check()
expect(page.get_by_text('Поля и подписи',exact=True)).to_be_visible()
expect(page.get_by_text('Поля таблицы / списка',exact=True)).to_be_visible()
press(page,'Сохранить черновик',page.get_by_text('Черновик сохранён',exact=True))
with page.expect_popup() as opened:
page.get_by_role('link',name='Предпросмотр ↗',exact=True).click()
@@ -256,3 +256,49 @@ def test_repair_legacy_questionnaire_in_browser(page,live):
expect(page.locator('.editor-preview h2')).to_have_text(['A01','A02'])
page.get_by_role('button',name='Опубликовать новую версию',exact=True).click()
expect(page.get_by_text('Версия 1 · Доступна',exact=True)).to_be_visible()
def test_independent_detail_fields_and_delete_collection(page, live):
base, folder = live
page.goto(base + '/login')
page.get_by_label('Логин', exact=True).fill('teacher')
page.get_by_label('Пароль', exact=True).fill('test-browser-password')
page.get_by_role('button', name='Войти в кабинет').click()
page.goto(base + '/admin/import')
page.locator('input[type=file]').set_input_files({
'name': 'details.csv', 'mimeType': 'text/csv',
'buffer': b'name,bio,secret\nAlice,BIOGRAPHY,PRIVATE'})
page.get_by_role('button', name='Проверить файл', exact=True).click()
expect(page.locator('#import-save')).to_be_enabled()
page.locator('#import-save').click()
page.get_by_label('Включить это представление').check()
page.get_by_label('bio', exact=True).uncheck()
page.get_by_label('secret', exact=True).uncheck()
expect(page.locator('#live-preview')).not_to_contain_text('BIOGRAPHY')
page.get_by_label('Настройка полей').select_option('detail')
page.get_by_label('Отдельные поля полной записи').check()
page.get_by_label('bio', exact=True).check()
expect(page.locator('#live-preview')).to_contain_text('BIOGRAPHY')
expect(page.locator('#live-preview')).not_to_contain_text('PRIVATE')
page.get_by_role('button', name='Сохранить черновик', exact=True).click()
expect(page.locator('#status')).to_have_text('Черновик сохранён')
page.screenshot(path=str(folder / 'detail-editor.png'), full_page=True)
editor_url = page.url
page.reload()
page.get_by_label('Предпросмотр данных').select_option('detail')
expect(page.locator('#live-preview')).to_contain_text('BIOGRAPHY')
page.get_by_role('button', name='Опубликовать новую версию', exact=True).click()
public_url = page.get_by_role('link', name='HTML · BeautifulSoup ↗').get_attribute('href')
page.goto(base + public_url)
expect(page.locator('.lab-records')).not_to_contain_text('BIOGRAPHY')
page.locator('.detail-link').click()
expect(page.locator('.lab-records')).to_contain_text('BIOGRAPHY')
expect(page.locator('.lab-records')).not_to_contain_text('PRIVATE')
page.goto(editor_url)
page.once('dialog', lambda dialog: dialog.dismiss())
page.get_by_role('button', name='Удалить коллекцию', exact=True).click()
expect(page).to_have_url(editor_url)
page.once('dialog', lambda dialog: dialog.accept())
page.get_by_role('button', name='Удалить коллекцию', exact=True).click()
expect(page).to_have_url(base + '/admin')
assert page.request.get(base + public_url).status == 404