searx: Add functional test for app availability

Add a functional test that checks whether the SearX web application is
available. This can catch the case of an Internal Server Error thrown by
uWSGI server. See Debian bug https://bugs.debian.org/965095

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Joseph Nuthalapati 2020-07-16 08:04:29 +05:30 committed by James Valleroy
parent 0c8ed13882
commit ce231254f0
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
2 changed files with 14 additions and 1 deletions

View File

@ -12,6 +12,7 @@ Scenario: Enable searx application
Given the searx application is disabled
When I enable the searx application
Then the searx site should be available
And the search form should be visible
@backups
Scenario: Backup and restore searx

View File

@ -3,7 +3,7 @@
Functional, browser based tests for searx app.
"""
from pytest_bdd import given, scenarios, when
from pytest_bdd import given, scenarios, then, when
from plinth.tests import functional
@ -25,6 +25,11 @@ def searx_disable_public_access(session_browser):
_disable_public_access(session_browser)
@then('the search form should be visible')
def is_searx_search_form_visible(session_browser):
_is_search_form_visible(session_browser)
def _enable_public_access(browser):
"""Enable Public Access in SearX"""
functional.nav_to_module(browser, 'searx')
@ -37,3 +42,10 @@ def _disable_public_access(browser):
functional.nav_to_module(browser, 'searx')
browser.find_by_id('id_public_access').uncheck()
functional.submit(browser, form_class='form-configuration')
def _is_search_form_visible(browser):
"""Checks whether the search box is shown in the Searx web interface."""
searx_app_url = functional.config['DEFAULT']['url'] + '/searx'
browser.visit(searx_app_url)
assert browser.find_by_id("search_form")