backups: tests: functional: Find forms more accurately

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Sunil Mohan Adapa 2022-08-30 22:32:40 -07:00 committed by James Valleroy
parent 2d3681605e
commit 625146329d
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
5 changed files with 16 additions and 13 deletions

View File

@ -27,7 +27,7 @@
</div>
<p>
<form class="form" method="post">
<form class="form form-delete" method="post">
{% csrf_token %}
<input type="submit" class="btn btn-danger"

View File

@ -17,7 +17,7 @@
{% endif %}
<p>
<form class="form" method="post">
<form class="form form-restore" method="post">
{% csrf_token %}
{{ form|bootstrap }}

View File

@ -32,7 +32,7 @@
</div>
{% endif %}
<form class="form" enctype="multipart/form-data" method="post">
<form class="form form-upload" enctype="multipart/form-data" method="post">
{% csrf_token %}
{{ form|bootstrap }}

View File

@ -150,7 +150,7 @@ def _backup_schedule_set(browser, enable, daily, weekly, monthly, run_at,
functional.eventually(browser.find_by_css, args=['.select-all'])
browser.find_by_css('.select-all').first.check()
browser.find_by_css(f'input[value="{without_app}"]').first.uncheck()
functional.submit(browser)
functional.submit(browser, form_class='form-backups_schedule')
def _download_file_logged_in(browser, url, suffix=''):
@ -186,8 +186,8 @@ def _upload_and_restore(browser, app_name, downloaded_file_path):
fileinput = browser.driver.find_element_by_id('id_backups-file')
fileinput.send_keys(downloaded_file_path)
# submit upload form
functional.submit(browser)
functional.submit(browser, form_class='form-upload')
# submit restore form
with functional.wait_for_page_update(browser,
expected_url='/plinth/sys/backups/'):
functional.submit(browser)
functional.submit(browser, form_class='form-restore')

View File

@ -506,26 +506,28 @@ def set_advanced_mode(browser, mode):
####################
# Backup utilities #
####################
def _click_button_and_confirm(browser, href):
def _click_button_and_confirm(browser, href, form_class):
buttons = browser.links.find_by_href(href)
if buttons:
submit(browser, buttons.first)
submit(browser, expected_url='/plinth/sys/backups/')
submit(browser, element=buttons.first)
submit(browser, form_class=form_class,
expected_url='/plinth/sys/backups/')
def _backup_delete_archive_by_name(browser, archive_name):
nav_to_module(browser, 'backups')
href = f'/plinth/sys/backups/root/delete/{archive_name}/'
_click_button_and_confirm(browser, href)
_click_button_and_confirm(browser, href, 'form-delete')
def backup_create(browser, app_name, archive_name=None):
"""Create a new backup for a given app."""
install(browser, 'backups')
if archive_name:
_backup_delete_archive_by_name(browser, archive_name)
buttons = browser.links.find_by_href('/plinth/sys/backups/create/')
submit(browser, buttons.first)
submit(browser, element=buttons.first)
eventually(browser.find_by_css, args=['.select-all'])
browser.find_by_css('.select-all').first.uncheck()
if archive_name:
@ -534,13 +536,14 @@ def backup_create(browser, app_name, archive_name=None):
# ensure the checkbox is scrolled into view
browser.execute_script('window.scrollTo(0, 0)')
browser.find_by_value(app_name).first.check()
submit(browser)
submit(browser, form_class='form-backups')
def backup_restore(browser, app_name, archive_name=None):
"""Restore a given app from a backup archive."""
nav_to_module(browser, 'backups')
href = f'/plinth/sys/backups/root/restore-archive/{archive_name}/'
_click_button_and_confirm(browser, href)
_click_button_and_confirm(browser, href, 'form-restore')
######################