mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-09-19 04:59:01 +00:00
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:
parent
2d3681605e
commit
625146329d
@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<form class="form" method="post">
|
<form class="form form-delete" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
<input type="submit" class="btn btn-danger"
|
<input type="submit" class="btn btn-danger"
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<form class="form" method="post">
|
<form class="form form-restore" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{{ form|bootstrap }}
|
{{ form|bootstrap }}
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<form class="form" enctype="multipart/form-data" method="post">
|
<form class="form form-upload" enctype="multipart/form-data" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{{ form|bootstrap }}
|
{{ form|bootstrap }}
|
||||||
|
|||||||
@ -150,7 +150,7 @@ def _backup_schedule_set(browser, enable, daily, weekly, monthly, run_at,
|
|||||||
functional.eventually(browser.find_by_css, args=['.select-all'])
|
functional.eventually(browser.find_by_css, args=['.select-all'])
|
||||||
browser.find_by_css('.select-all').first.check()
|
browser.find_by_css('.select-all').first.check()
|
||||||
browser.find_by_css(f'input[value="{without_app}"]').first.uncheck()
|
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=''):
|
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 = browser.driver.find_element_by_id('id_backups-file')
|
||||||
fileinput.send_keys(downloaded_file_path)
|
fileinput.send_keys(downloaded_file_path)
|
||||||
# submit upload form
|
# submit upload form
|
||||||
functional.submit(browser)
|
functional.submit(browser, form_class='form-upload')
|
||||||
# submit restore form
|
# submit restore form
|
||||||
with functional.wait_for_page_update(browser,
|
with functional.wait_for_page_update(browser,
|
||||||
expected_url='/plinth/sys/backups/'):
|
expected_url='/plinth/sys/backups/'):
|
||||||
functional.submit(browser)
|
functional.submit(browser, form_class='form-restore')
|
||||||
|
|||||||
@ -506,26 +506,28 @@ def set_advanced_mode(browser, mode):
|
|||||||
####################
|
####################
|
||||||
# Backup utilities #
|
# 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)
|
buttons = browser.links.find_by_href(href)
|
||||||
if buttons:
|
if buttons:
|
||||||
submit(browser, buttons.first)
|
submit(browser, element=buttons.first)
|
||||||
submit(browser, expected_url='/plinth/sys/backups/')
|
submit(browser, form_class=form_class,
|
||||||
|
expected_url='/plinth/sys/backups/')
|
||||||
|
|
||||||
|
|
||||||
def _backup_delete_archive_by_name(browser, archive_name):
|
def _backup_delete_archive_by_name(browser, archive_name):
|
||||||
nav_to_module(browser, 'backups')
|
nav_to_module(browser, 'backups')
|
||||||
href = f'/plinth/sys/backups/root/delete/{archive_name}/'
|
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):
|
def backup_create(browser, app_name, archive_name=None):
|
||||||
|
"""Create a new backup for a given app."""
|
||||||
install(browser, 'backups')
|
install(browser, 'backups')
|
||||||
if archive_name:
|
if archive_name:
|
||||||
_backup_delete_archive_by_name(browser, archive_name)
|
_backup_delete_archive_by_name(browser, archive_name)
|
||||||
|
|
||||||
buttons = browser.links.find_by_href('/plinth/sys/backups/create/')
|
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'])
|
eventually(browser.find_by_css, args=['.select-all'])
|
||||||
browser.find_by_css('.select-all').first.uncheck()
|
browser.find_by_css('.select-all').first.uncheck()
|
||||||
if archive_name:
|
if archive_name:
|
||||||
@ -534,13 +536,14 @@ def backup_create(browser, app_name, archive_name=None):
|
|||||||
# ensure the checkbox is scrolled into view
|
# ensure the checkbox is scrolled into view
|
||||||
browser.execute_script('window.scrollTo(0, 0)')
|
browser.execute_script('window.scrollTo(0, 0)')
|
||||||
browser.find_by_value(app_name).first.check()
|
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):
|
def backup_restore(browser, app_name, archive_name=None):
|
||||||
|
"""Restore a given app from a backup archive."""
|
||||||
nav_to_module(browser, 'backups')
|
nav_to_module(browser, 'backups')
|
||||||
href = f'/plinth/sys/backups/root/restore-archive/{archive_name}/'
|
href = f'/plinth/sys/backups/root/restore-archive/{archive_name}/'
|
||||||
_click_button_and_confirm(browser, href)
|
_click_button_and_confirm(browser, href, 'form-restore')
|
||||||
|
|
||||||
|
|
||||||
######################
|
######################
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user