Manage ASL magazines and their articles.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
asl-articles/asl_articles/tests/test_startup.py

40 lines
1.4 KiB

""" Test the startup process. """
import pytest
import asl_articles.startup
from asl_articles.tests.utils import init_tests, wait_for, find_child, set_toast_marker, check_toast
from asl_articles.tests import pytest_options
# ---------------------------------------------------------------------
@pytest.mark.skipif( pytest_options.flask_url is not None, reason="Testing against a remote Flask server." )
def test_startup_messages( webdriver, flask_app, dbconn ):
"""Test startup messages."""
# initialize
init_tests( webdriver, flask_app, dbconn )
startup_msgs = asl_articles.startup._startup_msgs #pylint: disable=protected-access
def do_test( msg_type ):
# check that the startup message was shown in the UI correctly
set_toast_marker( msg_type )
assert startup_msgs[ msg_type ] == []
asl_articles.startup.log_startup_msg( msg_type, "TEST: {}", msg_type )
webdriver.refresh()
expected = startup_msgs[ msg_type ][0]
wait_for( 2, lambda: check_toast( msg_type, expected ) )
startup_msgs[ msg_type ] = []
# check if the webapp started up or not
if msg_type == "error":
assert not find_child( "#search-form" )
else:
assert find_child( "#search-form" )
# test each type of startup message
do_test( "info" )
do_test( "warning" )
do_test( "error" )