parent
1d3af963df
commit
f3ae34878c
After Width: | Height: | Size: 980 B |
@ -0,0 +1,60 @@ |
||||
{ |
||||
|
||||
"german": { |
||||
"vehicles": { |
||||
"1": { "caption": "german/vehicles #1", "target": "gv:1" } |
||||
} |
||||
}, |
||||
|
||||
"russian": { |
||||
"ordnance": { |
||||
"2": { "caption": "russian/ordnance #2", "target": "ro:2" } |
||||
} |
||||
}, |
||||
|
||||
"allied-minor": { |
||||
"vehicles": { |
||||
"1": { "caption": "dutch/vehicles #1", "target": "dv:1" }, |
||||
"101": { "caption": "allied-minor/vehicles #101", "target": "almv:101" } |
||||
} |
||||
}, |
||||
|
||||
"axis-minor": { |
||||
"ordnance": { |
||||
"4": { "caption": "romanian/ordnance #4", "target": "ro:4" }, |
||||
"104": { "caption": "axis-minor/ordnance #104", "target": "axmo:104" } |
||||
} |
||||
}, |
||||
|
||||
"landing-craft": { |
||||
"1": { "caption": "landing-craft #1", "target": "lc:1" }, |
||||
"2": { "caption": "landing-craft #2", "target": "lc:2" } |
||||
}, |
||||
|
||||
"chinese": { |
||||
"vehicles": { |
||||
"1": { "caption": "chinese/vehicles #1", "target": "chv:1" } |
||||
} |
||||
}, |
||||
|
||||
"un-forces": { |
||||
"vehicles": { |
||||
"5": { "caption": "un-forces/vehicles #5", "target": "kfw-un:5" }, |
||||
"6": { "caption": "un-forces/vehicles #6", "target": "kfw-un:6" } |
||||
}, |
||||
"ordnance": { |
||||
"7": { "caption": "un-forces/ordnance #7", "target": "kfw-un:7" }, |
||||
"8": { "caption": "un-forces/ordnance #8", "target": "kfw-un:8" } |
||||
} |
||||
}, |
||||
|
||||
"communist-forces": { |
||||
"vehicles": { |
||||
"15": { "caption": "communist-forces/vehicles #15", "target": "kfw-comm:15" } |
||||
}, |
||||
"ordnance": { |
||||
"16": { "caption": "communist-forces/ordnance #16", "target": "kfw-comm:16" } |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1 @@ |
||||
[] |
@ -0,0 +1 @@ |
||||
[] |
@ -0,0 +1,8 @@ |
||||
[ |
||||
|
||||
{ "name": "kfw british ordnance", |
||||
"note_number": "7", |
||||
"id": "kfw-bcfk/o:7" |
||||
} |
||||
|
||||
] |
@ -0,0 +1,8 @@ |
||||
[ |
||||
|
||||
{ "name": "cpva ordnance", |
||||
"note_number": "16", |
||||
"id": "kfw-cpva/o:016" |
||||
} |
||||
|
||||
] |
@ -0,0 +1,8 @@ |
||||
[ |
||||
|
||||
{ "name": "kfw common ordnance", |
||||
"note_number": "8\u2020", |
||||
"id": "kfw-un-common/o:008" |
||||
} |
||||
|
||||
] |
@ -0,0 +1 @@ |
||||
[] |
@ -0,0 +1,8 @@ |
||||
[ |
||||
|
||||
{ "name": "kpa vehicle", |
||||
"note_number": "15", |
||||
"id": "kfw-kpa/v:015" |
||||
} |
||||
|
||||
] |
@ -0,0 +1,8 @@ |
||||
[ |
||||
|
||||
{ "name": "kfw common vehicle", |
||||
"note_number": "6\u2020", |
||||
"id": "kfw-un-common/v:006" |
||||
} |
||||
|
||||
] |
@ -0,0 +1,8 @@ |
||||
[ |
||||
|
||||
{ "name": "kfw us vehicle", |
||||
"note_number": "5", |
||||
"id": "kfw-uro/v:005" |
||||
} |
||||
|
||||
] |
@ -0,0 +1,117 @@ |
||||
""" Test integration with asl-rulebook2. """ |
||||
|
||||
import os |
||||
|
||||
from vasl_templates.webapp.tests.utils import init_webapp, find_child, find_children |
||||
from vasl_templates.webapp.tests.test_scenario_persistence import load_scenario |
||||
|
||||
# --------------------------------------------------------------------- |
||||
|
||||
def test_chapter_h( webapp, webdriver ): |
||||
"""Test links to Chapter H vehicle/ordnance notes.""" |
||||
|
||||
# initialize |
||||
webapp.control_tests.set_app_config_val( "ASL_RULEBOOK2_BASE_URL", |
||||
os.path.join( os.path.dirname(__file__), "fixtures/asl-rulebook2/vo-note-targets.json" ) |
||||
) |
||||
init_webapp( webapp, webdriver, scenario_persistence=1 ) |
||||
base_url = "{}/asl-rulebook2/".format( webapp.base_url ) |
||||
|
||||
# test normal vehicles/ordnance |
||||
load_scenario( { |
||||
"PLAYER_1": "german", |
||||
"OB_VEHICLES_1": [ { "name": "a german vehicle" }, { "name": "another german vehicle" } ], |
||||
"PLAYER_2": "russian", |
||||
"OB_ORDNANCE_2": [ { "name": "a russian ordnance" }, { "name": "another russian ordnance" } ], |
||||
} ) |
||||
urls = _unload_aslrb2_urls( base_url ) |
||||
assert urls == [ |
||||
[ [ "gv:1", None ], [] ], |
||||
[ [], [ None, "ro:2" ] ] |
||||
] |
||||
|
||||
# test Allied/Axis Minor vehicles/ordnance |
||||
load_scenario( { |
||||
"PLAYER_1": "dutch", |
||||
"OB_VEHICLES_1": [ { "name": "dutch vehicle" }, { "name": "common allied minor vehicle" } ], |
||||
"PLAYER_2": "romanian", |
||||
"OB_ORDNANCE_2": [ { "name": "romanian ordnance" }, { "name": "common axis minor ordnance" } ], |
||||
} ) |
||||
urls = _unload_aslrb2_urls( base_url ) |
||||
assert urls == [ |
||||
[ [ "dv:1", "almv:101" ], [] ], |
||||
[ [], [ "ro:4", "axmo:104", ] ] |
||||
] |
||||
|
||||
# test Landing Craft |
||||
load_scenario( { |
||||
"PLAYER_1": "american", |
||||
"OB_VEHICLES_1": [ { "name": "landing craft" } ], |
||||
"PLAYER_2": "japanese", |
||||
"OB_VEHICLES_2": [ { "name": "Daihatsu" } ], |
||||
} ) |
||||
urls = _unload_aslrb2_urls( base_url ) |
||||
assert urls == [ |
||||
[ [ "lc:1" ], [] ], |
||||
[ [ "lc:2" ], [] ] |
||||
] |
||||
|
||||
# test derived nationalities |
||||
load_scenario( { |
||||
"PLAYER_1": "chinese~gmd", |
||||
"OB_VEHICLES_1": [ { "name": "a chinese vehicle" } ], |
||||
} ) |
||||
urls = _unload_aslrb2_urls( base_url ) |
||||
assert urls == [ |
||||
[ ["chv:1"], [] ], |
||||
[ [], [] ] |
||||
] |
||||
|
||||
# test K:FW (UN Forces) |
||||
load_scenario( { |
||||
"PLAYER_1": "american", |
||||
"OB_VEHICLES_1": [ { "name": "kfw us vehicle" }, { "name": "kfw common vehicle" } ], |
||||
"PLAYER_2": "british", |
||||
"OB_ORDNANCE_2": [ { "name": "kfw british ordnance" }, { "name": "kfw common ordnance" } ], |
||||
} ) |
||||
urls = _unload_aslrb2_urls( base_url ) |
||||
assert urls == [ |
||||
[ ["kfw-un:5","kfw-un:6"], [] ], |
||||
[ [], ["kfw-un:7","kfw-un:8"] ] |
||||
] |
||||
|
||||
# test K:FW (Communist Forces) |
||||
load_scenario( { |
||||
"PLAYER_1": "kfw-kpa", |
||||
"OB_VEHICLES_1": [ { "name": "kpa vehicle" } ], |
||||
"PLAYER_2": "kfw-cpva", |
||||
"OB_ORDNANCE_2": [ { "name": "cpva ordnance" } ], |
||||
} ) |
||||
urls = _unload_aslrb2_urls( base_url ) |
||||
assert urls == [ |
||||
[ ["kfw-comm:15"], [] ], |
||||
[ [], ["kfw-comm:16"] ] |
||||
] |
||||
|
||||
# --------------------------------------------------------------------- |
||||
|
||||
def _unload_aslrb2_urls( base_url ): |
||||
"""Unload the URL's to the asl-rulebook2 vehicle/ordnance notes.""" |
||||
urls = [ |
||||
[ [], [] ], |
||||
[ [], [] ] |
||||
] |
||||
for player_no in (1,2): |
||||
for vo_type_index, vo_type in enumerate(["vehicles","ordnance"]): |
||||
sortable = find_child( "#ob_{}-sortable_{}".format( vo_type, player_no ) ) |
||||
urls2 = urls[ player_no-1 ][ vo_type_index ] |
||||
for vo_entry in find_children( ".vo-entry", sortable ): |
||||
link = find_child( "a.aslrb2", vo_entry ) |
||||
if link: |
||||
url = link.get_attribute( "href" ) |
||||
if url.startswith( base_url ): |
||||
url = url[ len(base_url): ] |
||||
else: |
||||
url = None |
||||
urls2.append( url ) |
||||
return urls |
Loading…
Reference in new issue