Updated all tests to wait for the page to finish loading before starting.

master
Pacman Ghost 6 years ago
parent a9c1181941
commit 196ec66032
  1. 2
      vasl_templates/webapp/static/main.js
  2. 5
      vasl_templates/webapp/tests/test_default_scenario.py
  3. 6
      vasl_templates/webapp/tests/test_ob.py
  4. 4
      vasl_templates/webapp/tests/test_players.py
  5. 10
      vasl_templates/webapp/tests/test_scenario_persistence.py
  6. 15
      vasl_templates/webapp/tests/test_snippets.py
  7. 4
      vasl_templates/webapp/tests/test_ssr.py
  8. 10
      vasl_templates/webapp/tests/test_template_packs.py
  9. 9
      vasl_templates/webapp/tests/test_vehicles_ordnance.py
  10. 4
      vasl_templates/webapp/tests/test_vo_reports.py
  11. 5
      vasl_templates/webapp/tests/utils.py

@ -291,7 +291,7 @@ $(document).ready( function () {
// add some dummy links for the test suite to edit templates
if ( getUrlParam( "edit_template_links" ) ) {
$("button.generate").each( function() {
var template_id = $(this).attr( "data-id" ) ;
var template_id = $(this).attr( "data-id" ) ;
if ( template_id.substring(0,9) === "ob_setup_" )
template_id = "ob_setup" ;
else if ( template_id.substring(0,9) === "vehicles_" )

@ -5,7 +5,8 @@ from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from vasl_templates.webapp import main
from vasl_templates.webapp.tests.utils import select_tab, find_child, get_sortable_entry_text, wait_for
from vasl_templates.webapp.tests.utils import select_tab, find_child, get_sortable_entry_text, \
wait_for, init_webapp
# ---------------------------------------------------------------------
@ -17,7 +18,7 @@ def test_default_scenario( webapp, webdriver, monkeypatch ):
monkeypatch.setattr( main, "default_scenario", fname )
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
# wait for the scenario to load
elem = find_child( "input[name='SCENARIO_NAME']" )

@ -8,7 +8,7 @@ from selenium.webdriver.support.ui import Select
from vasl_templates.webapp.tests.utils import \
get_nationalities, get_clipboard, get_stored_msg, set_stored_msg_marker, select_tab, find_child, find_children, \
add_simple_note, edit_simple_note, get_sortable_entry_count, drag_sortable_entry_to_trash, \
select_droplist_val
select_droplist_val, init_webapp
# ---------------------------------------------------------------------
@ -29,7 +29,7 @@ def _do_test_ob_entries( webapp, webdriver, ob_type ):
"""Test generating OB setup/notes."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
sortable1 = find_child( "#{}-sortable_1".format( ob_type ) )
sortable2 = find_child( "#{}-sortable_2".format( ob_type ) )
@ -92,7 +92,7 @@ def test_nationality_specific( webapp, webdriver ): #pylint: disable=too-many-lo
"""Check that nationality-specific buttons are shown/hidden correctly."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
nationalities = get_nationalities( webapp )
# initialize

@ -3,7 +3,7 @@
from selenium.webdriver.support.ui import Select
from vasl_templates.webapp.tests.utils import get_nationalities, select_tab, find_child, \
select_droplist_val
select_droplist_val, init_webapp
# ---------------------------------------------------------------------
@ -11,7 +11,7 @@ def test_player_change( webapp, webdriver ):
"""Test changing players."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
select_tab( "scenario" )
nationalities = get_nationalities( webapp )
player_sel = {

@ -5,8 +5,8 @@ import json
from selenium.webdriver.support.ui import Select
from vasl_templates.webapp.tests.utils import \
get_nationalities, set_template_params, select_tab, select_menu_option, get_sortable_entry_text, \
get_stored_msg, set_stored_msg, set_stored_msg_marker, find_child, find_children, wait_for
init_webapp, get_nationalities, set_template_params, select_tab, select_menu_option, \
get_sortable_entry_text, get_stored_msg, set_stored_msg, set_stored_msg_marker, find_child, find_children, wait_for
# ---------------------------------------------------------------------
@ -14,7 +14,7 @@ def test_scenario_persistence( webapp, webdriver ): #pylint: disable=too-many-st
"""Test loading/saving scenarios."""
# initialize
webdriver.get( webapp.url_for( "main", scenario_persistence=1 ) )
init_webapp( webapp, webdriver, scenario_persistence=1 )
nationalities = get_nationalities( webapp )
def check_ob_tabs( *args ):
@ -132,7 +132,7 @@ def test_loading_ssrs( webapp, webdriver ):
"""Test loading SSR's."""
# initialize
webdriver.get( webapp.url_for( "main", scenario_persistence=1 ) )
init_webapp( webapp, webdriver, scenario_persistence=1 )
# initialize
select_tab( "scenario" )
@ -159,7 +159,7 @@ def test_unknown_vo( webapp, webdriver ):
"""Test detection of unknown vehicles/ordnance."""
# initialize
webdriver.get( webapp.url_for( "main", scenario_persistence=1 ) )
init_webapp( webapp, webdriver, scenario_persistence=1 )
# load a scenario that has unknown vehicles/ordnance
scenario_params = {

@ -3,8 +3,8 @@
from selenium.webdriver.common.keys import Keys
from vasl_templates.webapp.tests.utils import \
select_tab, set_template_params, get_clipboard, \
wait_for_page_ready, get_stored_msg, set_stored_msg_marker, find_child, \
init_webapp, select_tab, set_template_params, get_clipboard, \
get_stored_msg, set_stored_msg_marker, find_child, \
for_each_template, add_simple_note, edit_simple_note, \
get_sortable_entry_count, generate_sortable_entry_snippet, drag_sortable_entry_to_trash
@ -14,7 +14,7 @@ def test_scenario_snippets( webapp, webdriver ):
"""Test HTML snippet generation."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
select_tab( "scenario" )
btn = find_child( "button.generate[data-id='scenario']" )
@ -65,7 +65,7 @@ def test_vc_snippets( webapp, webdriver ):
"""Test HTML snippet generation."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
select_tab( "scenario" )
btn = find_child( "button.generate[data-id='victory_conditions']" )
@ -100,7 +100,7 @@ def test_scenario_notes_snippets( webapp, webdriver ):
"""Test HTML snippet generation."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
select_tab( "scenario" )
# add some scenario notes and check their snippets
@ -125,7 +125,7 @@ def test_players_snippets( webapp, webdriver ):
"""Test HTML snippet generation."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
select_tab( "scenario" )
btn = find_child( "button.generate[data-id='players']" )
@ -156,8 +156,7 @@ def test_edit_templates( webapp, webdriver ):
"""Test editing templates."""
# initialize
webdriver.get( webapp.url_for( "main", edit_template_links=1 ) )
wait_for_page_ready()
init_webapp( webapp, webdriver, edit_template_links=1 )
ob_setups = {
1: find_child( "#ob_setups-sortable_1" ),
2: find_child( "#ob_setups-sortable_2" )

@ -3,7 +3,7 @@
import html
from vasl_templates.webapp.tests.utils import \
select_tab, find_child, get_clipboard, \
init_webapp, select_tab, find_child, get_clipboard, \
add_simple_note, edit_simple_note, drag_sortable_entry_to_trash, get_sortable_entry_count
# ---------------------------------------------------------------------
@ -12,7 +12,7 @@ def test_ssr( webapp, webdriver ):
"""Test generating SSR snippets."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
select_tab( "scenario" )
sortable = find_child( "#ssr-sortable" )

@ -11,7 +11,7 @@ from vasl_templates.webapp import snippets
from vasl_templates.webapp.tests.utils import \
select_tab, select_menu_option, get_clipboard, get_stored_msg, set_stored_msg, set_stored_msg_marker,\
add_simple_note, for_each_template, find_child, find_children, wait_for, \
select_droplist_val, get_droplist_vals
select_droplist_val, get_droplist_vals, init_webapp
# ---------------------------------------------------------------------
@ -19,7 +19,7 @@ def test_individual_files( webapp, webdriver ):
"""Test loading individual template files."""
# initialize
webdriver.get( webapp.url_for( "main", template_pack_persistence=1 ) )
init_webapp( webapp, webdriver, template_pack_persistence=1 )
# try uploading a customized version of each template
def test_template( template_id, orig_template_id ):
@ -48,7 +48,7 @@ def test_zip_files( webapp, webdriver ):
"""Test loading ZIP'ed template packs."""
# initialize
webdriver.get( webapp.url_for( "main", template_pack_persistence=1 ) )
init_webapp( webapp, webdriver, template_pack_persistence=1 )
# upload a template pack that contains a full set of templates
zip_data = _make_zip_from_files( "full" )
@ -83,7 +83,7 @@ def test_new_default_template_pack( webapp, webdriver, monkeypatch ):
monkeypatch.setattr( snippets, "default_template_pack", dname )
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
# check that the new templates are being used
_check_snippets( lambda tid: "New default {}.".format( tid.upper() ) )
@ -94,7 +94,7 @@ def test_nationality_data( webapp, webdriver ):
"""Test a template pack with nationality data."""
# initialize
webdriver.get( webapp.url_for( "main", template_pack_persistence=1 ) )
init_webapp( webapp, webdriver, template_pack_persistence=1 )
select_tab( "scenario" )
# select the British as player 1

@ -6,7 +6,7 @@ from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
from vasl_templates.webapp.tests.utils import \
wait_for_page_ready, select_tab, set_template_params, find_child, find_children, \
init_webapp, select_tab, set_template_params, find_child, find_children, \
get_clipboard, click_dialog_button
# ---------------------------------------------------------------------
@ -15,7 +15,7 @@ def test_crud( webapp, webdriver ):
"""Test basic create/read/update/delete of vehicles/ordnance."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
# initialize
_expected = {
@ -126,8 +126,7 @@ def test_snippets( webapp, webdriver ):
"""Test vehicle/ordnance snippet generation in detail."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
wait_for_page_ready()
init_webapp( webapp, webdriver )
def do_test( vo_type ):
"""Run the test."""
@ -181,7 +180,7 @@ def test_variable_capabilities( webapp, webdriver ):
"""Test date-based variable capabilities."""
# initialize
webdriver.get( webapp.url_for( "main" ) )
init_webapp( webapp, webdriver )
# add a vehicle
add_vo( "vehicles", 2, "Churchill III(b)" )

@ -86,7 +86,9 @@ def get_vo_report( webapp, webdriver, nat, vo_type, year ):
"""
# initialize
webdriver.get( webapp.url_for( "get_vo_report", nat=nat, vo_type=vo_type, year=year ) )
webdriver.get(
webapp.url_for( "get_vo_report", nat=nat, vo_type=vo_type, year=year )
)
wait_for( 5, lambda: find_child("#results").is_displayed() )
# unload the results

@ -33,8 +33,9 @@ _webdriver = None
# ---------------------------------------------------------------------
def wait_for_page_ready():
"""Wait for the page to become ready."""
def init_webapp( webapp, webdriver, **options ):
"""Initialize the webapp."""
webdriver.get( webapp.url_for( "main", **options ) )
wait_for( 5, lambda: find_child("#_page-loaded_") is not None )
# ---------------------------------------------------------------------

Loading…
Cancel
Save