Обновил структуру проекта
This commit is contained in:
+48
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user