Made scenario parameters upper-case.

master
Pacman Ghost 6 years ago
parent 09a41da590
commit ffa10ccd5b
  1. 42
      vasl_templates/webapp/static/css/tabs-scenario.css
  2. 22
      vasl_templates/webapp/static/generate.js
  3. 20
      vasl_templates/webapp/static/main.js
  4. 42
      vasl_templates/webapp/templates/index.html
  5. 48
      vasl_templates/webapp/tests/test_generate.py
  6. 16
      vasl_templates/webapp/tests/test_ob_setup.py
  7. 6
      vasl_templates/webapp/tests/test_players.py
  8. 22
      vasl_templates/webapp/tests/test_scenario_persistence.py
  9. 2
      vasl_templates/webapp/tests/test_ssr.py
  10. 4
      vasl_templates/webapp/tests/utils.py

@ -5,11 +5,11 @@
grid-template-columns: 5em 1fr ; -ms-grid-columns: 5em 1fr ;
}
/* FUDGE! IE hackamathon follows (nb: <label> doesn't work, we use <div> for labels instead :-/) */
#panel-scenario div[data-labelfor="scenario_name"] { -ms-grid-row: 1 ; -ms-grid-column: 1 ; }
#panel-scenario input[name="scenario_name"] { -ms-grid-row: 1 ; -ms-grid-column: 2 ; }
#panel-scenario div[data-labelfor="scenario_location"] { -ms-grid-row: 2 ; -ms-grid-column: 1 ; }
#panel-scenario input[name="scenario_location"] { -ms-grid-row: 2 ; -ms-grid-column: 2 ; }
#panel-scenario div[data-labelfor="scenario_date"] { -ms-grid-row: 3 ; -ms-grid-column: 1 ; }
#panel-scenario div[data-labelfor="SCENARIO_NAME"] { -ms-grid-row: 1 ; -ms-grid-column: 1 ; }
#panel-scenario input[name="SCENARIO_NAME"] { -ms-grid-row: 1 ; -ms-grid-column: 2 ; }
#panel-scenario div[data-labelfor="SCENARIO_LOCATION"] { -ms-grid-row: 2 ; -ms-grid-column: 1 ; }
#panel-scenario input[name="SCENARIO_LOCATION"] { -ms-grid-row: 2 ; -ms-grid-column: 2 ; }
#panel-scenario div[data-labelfor="SCENARIO_DATE"] { -ms-grid-row: 3 ; -ms-grid-column: 1 ; }
#panel-scenario div.last_row { -ms-grid-row: 3 ; -ms-grid-column: 2 ; }
#panel-scenario .last_row .r { display: block-inline ; float: right ; font-size: 75% ; }
@ -23,24 +23,24 @@
grid-template-columns: 5em 1fr 3em 3em ; -ms-grid-columns: 5em 1fr 3em 3em ;
}
/* FUDGE! IE hackamathon follows (nb: <label> doesn't work, we use <div> for labels instead :-/) */
#panel-players div[data-labelfor="elr"] { -ms-grid-row: 1 ; -ms-grid-column: 3 ; }
#panel-players div[data-labelfor="san"] { -ms-grid-row: 1 ; -ms-grid-column: 4 ; }
#panel-players div[data-labelfor="player_1"] { -ms-grid-row: 2 ; -ms-grid-column: 1 ; }
#panel-players select[name="player_1"] { -ms-grid-row: 2 ; -ms-grid-column: 2 ; }
#panel-players select[name="player_1_elr"] { -ms-grid-row: 2 ; -ms-grid-column: 3 ; }
#panel-players select[name="player_1_san"] { -ms-grid-row: 2 ; -ms-grid-column: 4 ; }
#panel-players div[data-labelfor="player_2"] { -ms-grid-row: 3 ; -ms-grid-column: 1 ; }
#panel-players select[name="player_2"] { -ms-grid-row: 3 ; -ms-grid-column: 2 ; }
#panel-players select[name="player_2_elr"] { -ms-grid-row: 3 ; -ms-grid-column: 3 ; }
#panel-players select[name="player_2_san"] { -ms-grid-row: 3 ; -ms-grid-column: 4 ; }
#panel-players div[data-labelfor="ELR"] { -ms-grid-row: 1 ; -ms-grid-column: 3 ; }
#panel-players div[data-labelfor="SAN"] { -ms-grid-row: 1 ; -ms-grid-column: 4 ; }
#panel-players div[data-labelfor="PLAYER_1"] { -ms-grid-row: 2 ; -ms-grid-column: 1 ; }
#panel-players select[name="PLAYER_1"] { -ms-grid-row: 2 ; -ms-grid-column: 2 ; }
#panel-players select[name="PLAYER_1_ELR"] { -ms-grid-row: 2 ; -ms-grid-column: 3 ; }
#panel-players select[name="PLAYER_1_SAN"] { -ms-grid-row: 2 ; -ms-grid-column: 4 ; }
#panel-players div[data-labelfor="PLAYER_2"] { -ms-grid-row: 3 ; -ms-grid-column: 1 ; }
#panel-players select[name="PLAYER_2"] { -ms-grid-row: 3 ; -ms-grid-column: 2 ; }
#panel-players select[name="PLAYER_2_ELR"] { -ms-grid-row: 3 ; -ms-grid-column: 3 ; }
#panel-players select[name="PLAYER_2_SAN"] { -ms-grid-row: 3 ; -ms-grid-column: 4 ; }
#panel-players input[data-id="players"] { -ms-grid-row: 4 ; -ms-grid-column: 4 ; }
#panel-players div[data-labelfor="elr"] { margin-left: 0.25em ; }
#panel-players div[data-labelfor="san"] { margin-left: 0.25em ; }
#panel-players select[name="player_1"] { margin-right: 0.5em ; }
#panel-players select[name="player_2"] { margin-right: 0.5em ; }
#panel-players select[name="player_1_elr"] { margin-right: 0.25em ; }
#panel-players select[name="player_2_elr"] { margin-right: 0.25em ; }
#panel-players div[data-labelfor="ELR"] { margin-left: 0.25em ; }
#panel-players div[data-labelfor="SAN"] { margin-left: 0.25em ; }
#panel-players select[name="PLAYER_1"] { margin-right: 0.5em ; }
#panel-players select[name="PLAYER_2"] { margin-right: 0.5em ; }
#panel-players select[name="PLAYER_1_ELR"] { margin-right: 0.25em ; }
#panel-players select[name="PLAYER_2_ELR"] { margin-right: 0.25em ; }
#panel-players input[data-id="players"] { margin-top: 0.25em ; }
/* -------------------------------------------------------------------- */

@ -37,7 +37,7 @@ function generate_snippet( $btn )
}
// extract the scenario date components
var scenario_date = $("input[name='scenario_date']").datepicker( "getDate" ) ;
var scenario_date = $("input[name='SCENARIO_DATE']").datepicker( "getDate" ) ;
if ( scenario_date ) {
params.SCENARIO_DAY_OF_MONTH = scenario_date.getDate() ;
params.SCENARIO_MONTH = 1 + scenario_date.getMonth() ;
@ -151,7 +151,7 @@ function unload_params()
{
// collect all the template parameters
var params = {} ;
add_param = function($elem) { params[ $elem.attr("name").toUpperCase() ] = $elem.val() ; } ;
add_param = function($elem) { params[ $elem.attr("name") ] = $elem.val() ; } ;
$("input[type='text'].param").each( function() { add_param($(this)) ; } ) ;
$("textarea.param").each( function() { add_param($(this)) ; } ) ;
$("select.param").each( function() { add_param($(this)) ; } ) ;
@ -221,13 +221,13 @@ function do_load_scenario( params )
continue ;
}
//jshint loopfunc: true
$elem = $("input[type='text'][name='"+key.toLowerCase()+"'].param").each( function() {
$elem = $("input[type='text'][name='"+key+"'].param").each( function() {
set_param( $(this), key ) ;
} ) ;
$elem = $("textarea[type='text'][name='"+key.toLowerCase()+"'].param").each( function() {
$elem = $("textarea[type='text'][name='"+key+"'].param").each( function() {
set_param( $(this), key ) ;
} ) ;
$elem = $("select[name='"+key.toLowerCase()+"'].param").each( function() {
$elem = $("select[name='"+key+"'].param").each( function() {
set_param( $(this), key ).trigger( "change" ) ;
} ) ;
}
@ -279,12 +279,12 @@ function on_new_scenario( verbose )
$("textarea.param").each( function() { $(this).val("") ; } ) ;
// reset all the template parameters
on_player_change( $("select[name='player_1']").val( "german" ) ) ;
$("select[name='player_1_elr']").val( 5 ) ;
$("select[name='player_1_san']").val( 2 ) ;
on_player_change( $("select[name='player_2']").val( "russian" ) ) ;
$("select[name='player_2_elr']").val( 5 ) ;
$("select[name='player_2_san']").val( 2 ) ;
on_player_change( $("select[name='PLAYER_1']").val( "german" ) ) ;
$("select[name='PLAYER_1_ELR']").val( 5 ) ;
$("select[name='PLAYER_1_SAN']").val( 2 ) ;
on_player_change( $("select[name='PLAYER_2']").val( "russian" ) ) ;
$("select[name='PLAYER_2_ELR']").val( 5 ) ;
$("select[name='PLAYER_2_SAN']").val( 2 ) ;
// reset all the template parameters
$("#ssr-sortable li").each( function() {

@ -42,10 +42,10 @@ $(document).ready( function () {
heightStyle: "fill",
} ).show() ;
var navHeight = $("#tabs .ui-tabs-nav").height() ;
$("input[name='scenario_name']").focus().focus() ;
$("input[name='SCENARIO_NAME']").focus().focus() ;
// initialize
$("input[name='scenario_date']").datepicker( {
$("input[name='SCENARIO_DATE']").datepicker( {
showAnim: "slideDown",
changeMonth: true, changeYear: true,
defaultDate: "01/01/1940",
@ -70,14 +70,14 @@ $(document).ready( function () {
for ( var i=0 ; i <= 5 ; ++i ) // nb: A19.1: ELR is 0-5
buf.push( "<option value='" + i + "'>" + i + "</option>" ) ;
buf = buf.join( "" ) ;
$("select[name='player_1_elr']").html( buf ) ;
$("select[name='player_2_elr']").html( buf ) ;
$("select[name='PLAYER_1_ELR']").html( buf ) ;
$("select[name='PLAYER_2_ELR']").html( buf ) ;
buf = [ "<option></option>" ] ; // nb: allow scenarios that have no SAN
for ( i=2 ; i <= 7 ; ++i ) // nb: A14.1: SAN is 2-7
buf.push( "<option value='" + i + "'>" + i + "</option>" ) ;
buf = buf.join( "" ) ;
$("select[name='player_1_san']").html( buf ) ;
$("select[name='player_2_san']").html( buf ) ;
$("select[name='PLAYER_1_SAN']").html( buf ) ;
$("select[name='PLAYER_2_SAN']").html( buf ) ;
// load the nationalities
$.getJSON( gGetNationalitiesUrl, function(data) {
@ -85,16 +85,16 @@ $(document).ready( function () {
var buf = [] ;
for ( var id in gNationalities )
buf.push( "<option value='" + id + "'>" + gNationalities[id].display_name + "</option>" ) ;
$("select[name='player_1']").html( buf ) ;
$("select[name='player_2']").html( buf ) ;
$("select[name='PLAYER_1']").html( buf ) ;
$("select[name='PLAYER_2']").html( buf ) ;
on_new_scenario( false ) ;
} ).fail( function( xhr, status, errorMsg ) {
showErrorMsg( "Can't get the nationalities:<pre>" + escapeHTML(errorMsg) + "</pre>" ) ;
} ) ;
// add handlers for player changes
$("select[name='player_1']").change( function() { on_player_change($(this)) ; } ) ;
$("select[name='player_2']").change( function() { on_player_change($(this)) ; } ) ;
$("select[name='PLAYER_1']").change( function() { on_player_change($(this)) ; } ) ;
$("select[name='PLAYER_2']").change( function() { on_player_change($(this)) ; } ) ;
// get the default templates
$.getJSON( gGetTemplatesUrl, function(data) {

@ -32,31 +32,35 @@
<div id="tabs-scenario">
<fieldset class="tl"> <legend>Scenario</legend>
<div id="panel-scenario">
<div class="label" data-labelfor="scenario_name">Name:</div> <input name="scenario_name" type="text" class="param">
<div class="label" data-labelfor="scenario_location">Location:</div> <input name="scenario_location" type="text" class="param">
<div class="label" data-labelfor="scenario_date">Date:</div>
<div class="label" data-labelfor="SCENARIO_NAME">Name:</div> <input name="SCENARIO_NAME" type="text" class="param">
<div class="label" data-labelfor="SCENARIO_LOCATION">Location:</div> <input name="SCENARIO_LOCATION" type="text" class="param">
<div class="label" data-labelfor="SCENARIO_DATE">Date:</div>
<div class="last_row">
<input name="scenario_date" type="text" size="10" class="param">
<input name="SCENARIO_DATE" type="text" size="10" class="param">
<div class="r">
<label for="scenario_width">Width:</label>
<input type="text" class="param" name="scenario_width" size="5">
<label for="SCENARIO_WIDTH">Width:</label>
<input type="text" class="param" name="SCENARIO_WIDTH" size="5">
<input type="button" class="generate" data-id="scenario" value="Go">
</div>
</div>
</div>
<div id="panel-players">
<div></div> <div></div> <div class="label" data-labelfor="elr">ELR</div> <div class="label" data-labelfor="san">SAN</div>
<div class="label" data-labelfor="player_1">Player 1:</div> <select name="player_1" class="param"></select> <select name="player_1_elr" class="param"></select> <select name="player_1_san" class="param"></select>
<div class="label" data-labelfor="player_2">Player 2:</div> <select name="player_2" class="param"></select> <select name="player_2_elr" class="param"></select> <select name="player_2_san" class="param"></select>
<div></div> <div></div> <div class="label" data-labelfor="ELR">ELR</div> <div class="label" data-labelfor="SAN">SAN</div>
<div class="label" data-labelfor="PLAYER_1">Player 1:</div> <select name="PLAYER_1" class="param"></select>
<select name="PLAYER_1_ELR" class="param"></select>
<select name="PLAYER_1_SAN" class="param"></select>
<div class="label" data-labelfor="PLAYER_2">Player 2:</div> <select name="PLAYER_2" class="param"></select>
<select name="PLAYER_2_ELR" class="param"></select>
<select name="PLAYER_2_SAN" class="param"></select>
<div></div> <div></div> <div></div> <input type="button" class="generate" data-id="players" value="Go">
</div>
</fieldset>
<fieldset class="tr"> <legend>Victory Conditions</legend>
<div id="panel-vc">
<textarea name="victory_conditions" type="text" class="param"></textarea>
<textarea name="VICTORY_CONDITIONS" type="text" class="param"></textarea>
<div class="footer">
<label for="victory_conditions_width">Width:</label>
<input type="text" class="param" name="victory_conditions_width" size="5">
<label for="VICTORY_CONDITIONS_WIDTH">Width:</label>
<input type="text" class="param" name="VICTORY_CONDITIONS_WIDTH" size="5">
<input type="button" class="generate" data-id="victory_conditions" value="Go">
</div>
</div>
@ -72,8 +76,8 @@
<input type="button" id="add-ssr" value="+">
<img id="ssr-trash" src="{{url_for('static',filename='images/trash.png')}}">
</div>
<label for="ssr_width">Width:</label>
<input type="text" class="param" name="ssr_width" size="5">
<label for="SSR_WIDTH">Width:</label>
<input type="text" class="param" name="SSR_WIDTH" size="5">
<input type="button" class="generate" data-id="ssr" value="Go">
</div>
</div>
@ -83,7 +87,7 @@
<div id="tabs-ob1">
<fieldset class="tl"> <legend>OB setup</legend>
<div id="panel-obsetup1" class="panel-obsetup">
<textarea name="ob_setup_1" type="text" class="param"></textarea>
<textarea name="OB_SETUP_1" type="text" class="param"></textarea>
<div class="footer">
<input type="button" class="generate" data-id="mol" value="MOL">
<input type="button" class="generate" data-id="mol-p" value="MOL-P">
@ -94,8 +98,8 @@
<input type="button" class="generate" data-id="piat" value="PIAT">
<input type="button" class="generate" data-id="ob_setup_1" value="Go">
<div class="r">
<label for="ob_setup_width_1">Width:</label>
<input type="text" class="param" name="ob_setup_width_1" size="5">
<label for="OB_SETUP_WIDTH_1">Width:</label>
<input type="text" class="param" name="OB_SETUP_WIDTH_1" size="5">
</div>
</div>
</div>
@ -113,7 +117,7 @@
<div id="tabs-ob2">
<fieldset class="tl"> <legend>OB setup</legend>
<div id="panel-obsetup2" class="panel-obsetup">
<textarea name="ob_setup_2" type="text" class="param"></textarea>
<textarea name="OB_SETUP_2" type="text" class="param"></textarea>
<div class="footer">
<input type="button" class="generate" data-id="mol" value="MOL">
<input type="button" class="generate" data-id="mol-p" value="MOL-P">
@ -125,7 +129,7 @@
<input type="button" class="generate" data-id="piat" value="PIAT">
<div class="r">
<label for="ob_setup_width_2">Width:</label>
<input type="text" class="param" name="ob_setup_width_2" size="5">
<input type="text" class="param" name="OB_SETUP_WIDTH_2" size="5">
</div>
</div>
</div>

@ -46,9 +46,9 @@ def test_scenario_snippets( webapp, webdriver ):
# generate a SCENARIO snippet
_test_snippet( webdriver, "scenario", {
"scenario_name": "my scenario",
"scenario_location": "here",
"scenario_date": "01/02/1942",
"SCENARIO_NAME": "my scenario",
"SCENARIO_LOCATION": "here",
"SCENARIO_DATE": "01/02/1942",
},
'name = [my scenario] | loc = [here] | date = [01/02/1942] aka "2 January, 1942"',
None
@ -56,9 +56,9 @@ def test_scenario_snippets( webapp, webdriver ):
# generate a SCENARIO snippet with some fields missing
_test_snippet( webdriver, "scenario", {
"scenario_name": "my scenario",
"scenario_location": None,
"scenario_date": None,
"SCENARIO_NAME": "my scenario",
"SCENARIO_LOCATION": None,
"SCENARIO_DATE": None,
},
"name = [my scenario] | loc = [] | date = []",
[ "scenario date" ],
@ -66,9 +66,9 @@ def test_scenario_snippets( webapp, webdriver ):
# generate a SCENARIO snippet with all fields missing
_test_snippet( webdriver, "scenario", {
"scenario_name": None,
"scenario_location": None,
"scenario_date": None,
"SCENARIO_NAME": None,
"SCENARIO_LOCATION": None,
"SCENARIO_DATE": None,
},
"name = [] | loc = [] | date = []",
[ "scenario name", "scenario date" ],
@ -76,10 +76,10 @@ def test_scenario_snippets( webapp, webdriver ):
# generate a SCENARIO snippet with a snippet width
_test_snippet( webdriver, "scenario", {
"scenario_name": "test",
"scenario_location": "here",
"scenario_date": "01/02/1942",
"scenario_width": "20em",
"SCENARIO_NAME": "test",
"SCENARIO_LOCATION": "here",
"SCENARIO_DATE": "01/02/1942",
"SCENARIO_WIDTH": "20em",
},
'name = [test] | loc = [here] | date = [01/02/1942] aka "2 January, 1942" | width = [20em]',
None
@ -95,7 +95,7 @@ def test_vc_snippets( webapp, webdriver ):
# generate a VC snippet
_test_snippet( webdriver, "victory_conditions", {
"victory_conditions": "Kill 'Em All!",
"VICTORY_CONDITIONS": "Kill 'Em All!",
},
"VC: [Kill 'Em All!]",
None
@ -103,7 +103,7 @@ def test_vc_snippets( webapp, webdriver ):
# generate an empty VC snippet
_test_snippet( webdriver, "victory_conditions", {
"victory_conditions": "",
"VICTORY_CONDITIONS": "",
},
"VC: []",
None
@ -111,8 +111,8 @@ def test_vc_snippets( webapp, webdriver ):
# generate a VC snippet with a width
_test_snippet( webdriver, "victory_conditions", {
"victory_conditions": "Kill 'Em All!",
"victory_conditions_width": "100px",
"VICTORY_CONDITIONS": "Kill 'Em All!",
"VICTORY_CONDITIONS_WIDTH": "100px",
},
"VC: [Kill 'Em All!] ; width=[100px]",
None
@ -128,12 +128,12 @@ def test_players_snippets( webapp, webdriver ):
# generate a PLAYERS snippet
_test_snippet( webdriver, "players", {
"player_1": "french",
"player_1_elr": "1",
"player_1_san": "2",
"player_2": "british",
"player_2_elr": "3",
"player_2_san": "4",
"PLAYER_1": "french",
"PLAYER_1_ELR": "1",
"PLAYER_1_SAN": "2",
"PLAYER_2": "british",
"PLAYER_2_ELR": "3",
"PLAYER_2_SAN": "4",
},
"player1=[french] ; ELR=[1] ; SAN=[2] | player2=[british] ; ELR=[3] ; SAN=[4]",
None
@ -141,7 +141,7 @@ def test_players_snippets( webapp, webdriver ):
# generate a PLAYERS snippet with both players the same nationality
_test_snippet( webdriver, "players", {
"player_1": "british",
"PLAYER_1": "british",
},
"player1=[british] ; ELR=[1] ; SAN=[2] | player2=[british] ; ELR=[3] ; SAN=[4]",
[ "Both players have the same nationality!" ],

@ -16,12 +16,12 @@ def test_ob_setup( webapp, webdriver ):
# generate OB SETUP snippets for both players
select_tab( "ob1" )
textarea1 = find_child( "textarea[name='ob_setup_1']" )
textarea1 = find_child( "textarea[name='OB_SETUP_1']" )
textarea1.clear()
textarea1.send_keys( "setup here." )
btn1 = find_child( "input[type='button'][data-id='ob_setup_1']" )
select_tab( "ob2" )
textarea2 = find_child( "textarea[name='ob_setup_2']" )
textarea2 = find_child( "textarea[name='OB_SETUP_2']" )
textarea2.clear()
textarea2.send_keys( "setup there." )
btn2 = find_child( "input[type='button'][data-id='ob_setup_2']" )
@ -34,11 +34,11 @@ def test_ob_setup( webapp, webdriver ):
# change the player nationalities and generate the OB SETUP snippets again
select_tab( "scenario" )
sel = Select(
find_child( "select[name='player_1']" )
find_child( "select[name='PLAYER_1']" )
)
sel.select_by_value( "british" )
sel = Select(
find_child( "select[name='player_2']" )
find_child( "select[name='PLAYER_2']" )
)
sel.select_by_value( "french" )
select_tab( "ob1" )
@ -50,12 +50,12 @@ def test_ob_setup( webapp, webdriver ):
# set the snippet widths and generate the snippets again
select_tab( "ob1" )
elem = find_child( "input[name='ob_setup_width_1']" )
elem = find_child( "input[name='OB_SETUP_WIDTH_1']" )
elem.send_keys( "100px" )
btn1.click()
assert get_clipboard() == "[setup here.] (col=[OBCOL:british/OBCOL2:british]) (width=[100px])"
select_tab( "ob2" )
elem = find_child( "input[name='ob_setup_width_2']" )
elem = find_child( "input[name='OB_SETUP_WIDTH_2']" )
elem.send_keys( "200px" )
btn2.click()
assert get_clipboard() == "[setup there.] (col=[OBCOL:french/OBCOL2:french]) (width=[200px])"
@ -73,7 +73,7 @@ def test_nationality_specific( webapp, webdriver ):
def set_scenario_date( date ):
"""Set the scenario date."""
select_tab( "scenario" )
elem = find_child( "#panel-scenario input[name='scenario_date']" )
elem = find_child( "#panel-scenario input[name='SCENARIO_DATE']" )
elem.clear()
elem.send_keys( "{:02}/01/{:04}".format( date[1], date[0] ) )
@ -143,7 +143,7 @@ def test_nationality_specific( webapp, webdriver ):
# change the nationality for player 1
select_tab( "scenario" )
sel = Select(
find_child( "select[name='player_1']" )
find_child( "select[name='PLAYER_1']" )
)
sel.select_by_value( nat )
select_tab( "ob1" )

@ -9,7 +9,7 @@ from vasl_templates.webapp.tests.utils import get_nationalities, find_child
def _get_player( webdriver, player_id ): #pylint: disable=unused-argument
"""Get the nationality of the specified player."""
sel = Select(
find_child( "select[name='player_{}']".format( player_id ) )
find_child( "select[name='PLAYER_{}']".format( player_id ) )
)
return sel.first_selected_option.get_attribute( "value" )
@ -30,7 +30,7 @@ def test_player_change( webapp, webdriver ):
# change player 1
sel = Select(
find_child( "select[name='player_1']" )
find_child( "select[name='PLAYER_1']" )
)
sel.select_by_value( "finnish" )
elem = find_child( "#tabs .ui-tabs-nav a[href='#tabs-ob1']" )
@ -38,7 +38,7 @@ def test_player_change( webapp, webdriver ):
# change player 2
sel = Select(
find_child( "select[name='player_2']" )
find_child( "select[name='PLAYER_2']" )
)
sel.select_by_value( "japanese" )
elem = find_child( "#tabs .ui-tabs-nav a[href='#tabs-ob2']" )

@ -26,19 +26,19 @@ def test_scenario_persistence( webapp, webdriver ):
# load the scenario fields
scenario_params = {
"scenario": {
"scenario_name": "my test scenario", "scenario_location": "right here", "scenario_date": "12/31/1945",
"scenario_width": "101",
"player_1": "british", "player_1_elr": "1", "player_1_san": "2",
"player_2": "french", "player_2_elr": "3", "player_2_san": "4",
"victory_conditions": "just do it!", "victory_conditions_width": "102",
"ssr": [ "This is an SSR.", "This is another SSR." ],
"ssr_width": "103",
"SCENARIO_NAME": "my test scenario", "SCENARIO_LOCATION": "right here", "SCENARIO_DATE": "12/31/1945",
"SCENARIO_WIDTH": "101",
"PLAYER_1": "british", "PLAYER_1_ELR": "1", "PLAYER_1_SAN": "2",
"PLAYER_2": "french", "PLAYER_2_ELR": "3", "PLAYER_2_SAN": "4",
"VICTORY_CONDITIONS": "just do it!", "VICTORY_CONDITIONS_WIDTH": "102",
"SSR": [ "This is an SSR.", "This is another SSR." ],
"SSR_WIDTH": "103",
},
"ob1": {
"ob_setup_1": "Player 1's OB", "ob_setup_width_1": "201",
"OB_SETUP_1": "Player 1's OB", "OB_SETUP_WIDTH_1": "201",
},
"ob2": {
"ob_setup_2": "Player 2's OB", "ob_setup_width_2": "301",
"OB_SETUP_2": "Player 2's OB", "OB_SETUP_WIDTH_2": "301",
},
}
load_scenario_fields( scenario_params )
@ -74,7 +74,7 @@ def test_scenario_persistence( webapp, webdriver ):
for tab_id in scenario_params:
select_tab( tab_id )
for field,val in scenario_params[tab_id].items():
if field == "ssr":
if field == "SSR":
continue # nb: this requires special handling, we do it below
elem = next( c for c in ( \
find_child( "{}[name='{}']".format(elem_type,field) ) \
@ -85,7 +85,7 @@ def test_scenario_persistence( webapp, webdriver ):
else:
assert elem.get_attribute("value") == val
ssrs = _get_ssrs()
assert ssrs == scenario_params["scenario"]["ssr"]
assert ssrs == scenario_params["scenario"]["SSR"]
# ---------------------------------------------------------------------

@ -55,7 +55,7 @@ def test_ssr( webapp, webdriver ):
check_snippet()
# set the snippet width
elem = find_child( "input[name='ssr_width']" )
elem = find_child( "input[name='SSR_WIDTH']" )
elem.send_keys( "300px" )
check_snippet( "300px" )

@ -19,7 +19,7 @@ def set_template_params( params ):
for key,val in params.items():
# check for SSR's (these require special handling)
if key == "ssr":
if key == "SSR":
# add them in (nb: we don't consider any existing SSR's)
from vasl_templates.webapp.tests.test_ssr import add_ssr #pylint: disable=cyclic-import
for ssr in val:
@ -39,7 +39,7 @@ def set_template_params( params ):
elem.clear()
if val:
elem.send_keys( val )
if key == "scenario_date":
if key == "SCENARIO_DATE":
elem.send_keys( Keys.ESCAPE ) # nb: force the calendar popup to close :-/
time.sleep( 0.25 )

Loading…
Cancel
Save