From 899d3f93d709102cbd024f2d94fab7c799e5e67e Mon Sep 17 00:00:00 2001 From: Taka Date: Wed, 5 Sep 2018 04:12:17 +0000 Subject: [PATCH] Added the Italian ordnance. --- .../webapp/data/ordnance/italian.json | 114 ++++++++++++++++++ vasl_templates/webapp/static/snippets.js | 2 +- .../vo-reports/ordnance/italian/1940.txt | 24 ++++ .../vo-reports/ordnance/italian/1941.txt | 24 ++++ .../vo-reports/ordnance/italian/1942.txt | 24 ++++ .../vo-reports/ordnance/italian/1943.txt | 24 ++++ .../vo-reports/ordnance/italian/1944.txt | 24 ++++ .../vo-reports/ordnance/italian/1945.txt | 24 ++++ .../webapp/tests/test_capabilities.py | 32 ++++- 9 files changed, 287 insertions(+), 5 deletions(-) create mode 100644 vasl_templates/webapp/data/ordnance/italian.json create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1940.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1941.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1942.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1943.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1944.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1945.txt diff --git a/vasl_templates/webapp/data/ordnance/italian.json b/vasl_templates/webapp/data/ordnance/italian.json new file mode 100644 index 0000000..12cbd18 --- /dev/null +++ b/vasl_templates/webapp/data/ordnance/italian.json @@ -0,0 +1,114 @@ +[ + +{ "name": "Mortaio da 45 \"Brixia\"", + "capabilities_other": [ "4PP" ], + "note_number": "1", + "notes": [ "N" ] +}, +{ "name": "Mortaio da 81/14", + "capabilities": [ "NT", "QSU", "IR" ], + "capabilities2": { "s": 8 }, + "note_number": "2\u2020", + "notes": [ "N" ] +}, +{ "name": "Fucile-cc S", + "capabilities_other": [ "5PP" ], + "note_number": "3", + "notes": [ "N" ] +}, +{ "name": "Cannone-cc da 37/45", + "capabilities": [ "NT", "QSU" ], + "note_number": "4\u2020", + "notes": [ "C", "N", "R" ] +}, +{ "name": "Cannone da 47/32", + "capabilities": [ "NT", "QSU", "no Gunshield" ], + "capabilities2": { "Towed": [ [null,"A1+"], "\u2020" ] }, + "note_number": "5\u2020", + "notes": [ "A", "C", "N" ] +}, +{ "name": "Cannone da 65/17", + "capabilities": [ "NT", "no Gunshield" ], + "capabilities2": { "H": [ [6,"S2+"], "\u20201" ] }, + "note_number": "6\u2020", + "notes": [ "A", "C", "H\u20201", "N" ] +}, +{ "name": "Cannone da 70/15", + "capabilities": [ "NT", "QSU", "Acq. NA\u20201", "no Gunshield", "h-d" ], + "note_number": "7\u2020", + "notes": [ "A", "B\u20201", "R" ] +}, +{ "name": "Obice da 75/13", + "capabilities": [ "NT", "QSU" ], + "note_number": "8\u2020", + "notes": [ "A" ] +}, +{ "name": "Cannone da 75/27", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "H": [ [6,"S2+"], "\u20201" ] }, + "note_number": "9\u2020", + "notes": [ "A", "C", "H\u20201", "N" ] +}, +{ "name": "Obice da 75/18", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "H": [ [6,"S2+"], "\u20201" ], "s": 8 }, + "note_number": "10\u2020", + "notes": [ "A", "H\u20201", "N" ] +}, +{ "name": "Cannone da 75/32", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "H": [ [6,"S2+"], "\u20201" ], "s": 8 }, + "note_number": "11\u2020", + "notes": [ "H\u20201" ] +}, +{ "name": "Obice da 100/17", + "capabilities": [ "NT" ], + "capabilities2": { "H": [ [6,"S2+"], "\u20201" ] }, + "note_number": "12\u2020", + "notes": [ "A", "H\u20201", "N" ] +}, +{ "name": "Cannone da 105/28", + "capabilities": [ "NT" ], + "capabilities2": { "s": 8 }, + "note_number": "13\u2020", + "notes": [ "N" ] +}, +{ "name": "Obice 149/13", + "capabilities": [ "NT" ], + "note_number": "14\u2020", + "notes": [ "N" ] +}, +{ "name": "Cannone da 149/35", + "capabilities": [ "NT", "RFNM", "no IF", "Acq. NA\u20201" ], + "capabilities2": { "s": 8 }, + "note_number": "15\u2020", + "notes": [ "B\u20201", "N", "R" ] +}, +{ "name": "Cannone da 149/40", + "capabilities": [ "NT", "RFNM" ], + "note_number": "16\u2020", + "notes": [ "N" ] +}, +{ "name": "Cannone-mitr. da 20/65", + "capabilities": [ "T" ], + "capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF" ] }, + "note_number": "17\u2020", + "notes": [ "A", "C", "N" ] +}, +{ "name": "Cannone-aa da 75/39", + "capabilities": [ "T" ], + "capabilities_other": [ "\"16\" AP TK#\u2020" ], + "note_number": "18\u2020" +}, +{ "name": "Cannone-aa da 75/46", + "capabilities": [ "T" ], + "note_number": "19\u2020", + "notes": [ "N" ] +}, +{ "name": "Cannone-aa da 90/53", + "capabilities": [ "T" ], + "note_number": "20\u2020", + "notes": [ "N", "R" ] +} + +] diff --git a/vasl_templates/webapp/static/snippets.js b/vasl_templates/webapp/static/snippets.js index ae44670..06cf59e 100644 --- a/vasl_templates/webapp/static/snippets.js +++ b/vasl_templates/webapp/static/snippets.js @@ -287,7 +287,7 @@ function make_capabilities( entry, scenario_theater, scenario_year, scenario_mon capabilities.push( "LF [" + entry.capabilities2[key].join(", ") + "]" ) ; continue ; } - if ( $.inArray( key, ["HE","AP","A","D","C","H","s","sM","sD","sN","WP","IR"] ) === -1 ) { + if ( $.inArray( key, ["HE","AP","A","D","C","H","s","sM","sD","sN","WP","IR","Towed"] ) === -1 ) { unexpected_caps.push( key ) ; continue ; } diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1940.txt new file mode 100644 index 0000000..ea6c809 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1940.txt @@ -0,0 +1,24 @@ +=== ordnance/italian/1940 === + +Name Capabilities (effective) # Notes +---------------------- ----------------------------------- ----------------------------------- --- ------------------------- +Mortaio da 45 "Brixia" 4PP 4PP 1 N +Mortaio da 81/14 NT QSU IR s8 NT QSU IR s8 2† N +Fucile-cc S 5PP 5PP 3 N +Cannone-cc da 37/45 NT QSU NT QSU 4† C N R +Cannone da 47/32 NT QSU no Gunshield Towed[A1+]† NT QSU no Gunshield 5† A C N +Cannone da 65/17 NT no Gunshield H6[S2+]†[1] NT no Gunshield 6† A C H†1 N +Cannone da 70/15 NT QSU Acq. NA†[1] no Gunshield h-d NT QSU Acq. NA†[1] no Gunshield h-d 7† A B†1 R +Obice da 75/13 NT QSU NT QSU 8† A +Cannone da 75/27 NT QSU H6[S2+]†[1] NT QSU 9† A C H†1 N +Obice da 75/18 NT QSU H6[S2+]†[1] s8 NT QSU s8 10† A H†1 N +Cannone da 75/32 NT QSU H6[S2+]†[1] s8 NT QSU s8 11† H†1 +Obice da 100/17 NT H6[S2+]†[1] NT 12† A H†1 N +Cannone da 105/28 NT s8 NT s8 13† N +Obice 149/13 NT NT 14† N +Cannone da 149/35 NT RFNM no IF Acq. NA†[1] s8 NT RFNM no IF Acq. NA†[1] s8 15† B†1 N R +Cannone da 149/40 NT RFNM NT RFNM 16† N +Cannone-mitr. da 20/65 T LF [NT, 20†, 2 ROF] T LF [NT, 20†, 2 ROF] 17† A C N +Cannone-aa da 75/39 T "16" AP TK#† T "16" AP TK#† 18† n/a +Cannone-aa da 75/46 T T 19† N +Cannone-aa da 90/53 T T 20† N R diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1941.txt new file mode 100644 index 0000000..8c39ea5 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1941.txt @@ -0,0 +1,24 @@ +=== ordnance/italian/1941 === + +Name Capabilities (effective) # Notes +---------------------- ----------------------------------- ----------------------------------- --- ------------------------- +Mortaio da 45 "Brixia" 4PP 4PP 1 N +Mortaio da 81/14 NT QSU IR s8 NT QSU IR s8 2† N +Fucile-cc S 5PP 5PP 3 N +Cannone-cc da 37/45 NT QSU NT QSU 4† C N R +Cannone da 47/32 NT QSU no Gunshield Towed[A1+]† NT QSU no Gunshield 5† A C N +Cannone da 65/17 NT no Gunshield H6[S2+]†[1] NT no Gunshield 6† A C H†1 N +Cannone da 70/15 NT QSU Acq. NA†[1] no Gunshield h-d NT QSU Acq. NA†[1] no Gunshield h-d 7† A B†1 R +Obice da 75/13 NT QSU NT QSU 8† A +Cannone da 75/27 NT QSU H6[S2+]†[1] NT QSU 9† A C H†1 N +Obice da 75/18 NT QSU H6[S2+]†[1] s8 NT QSU s8 10† A H†1 N +Cannone da 75/32 NT QSU H6[S2+]†[1] s8 NT QSU s8 11† H†1 +Obice da 100/17 NT H6[S2+]†[1] NT 12† A H†1 N +Cannone da 105/28 NT s8 NT s8 13† N +Obice 149/13 NT NT 14† N +Cannone da 149/35 NT RFNM no IF Acq. NA†[1] s8 NT RFNM no IF Acq. NA†[1] s8 15† B†1 N R +Cannone da 149/40 NT RFNM NT RFNM 16† N +Cannone-mitr. da 20/65 T LF [NT, 20†, 2 ROF] T LF [NT, 20†, 2 ROF] 17† A C N +Cannone-aa da 75/39 T "16" AP TK#† T "16" AP TK#† 18† n/a +Cannone-aa da 75/46 T T 19† N +Cannone-aa da 90/53 T T 20† N R diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1942.txt new file mode 100644 index 0000000..7e73d0b --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1942.txt @@ -0,0 +1,24 @@ +=== ordnance/italian/1942 === + +Name Capabilities (effective) # Notes +---------------------- ----------------------------------- ----------------------------------- --- ------------------------- +Mortaio da 45 "Brixia" 4PP 4PP 1 N +Mortaio da 81/14 NT QSU IR s8 NT QSU IR s8 2† N +Fucile-cc S 5PP 5PP 3 N +Cannone-cc da 37/45 NT QSU NT QSU 4† C N R +Cannone da 47/32 NT QSU no Gunshield Towed[A1+]† NT QSU no Gunshield Towed† 5† A C N +Cannone da 65/17 NT no Gunshield H6[S2+]†[1] NT no Gunshield 6† A C H†1 N +Cannone da 70/15 NT QSU Acq. NA†[1] no Gunshield h-d NT QSU Acq. NA†[1] no Gunshield h-d 7† A B†1 R +Obice da 75/13 NT QSU NT QSU 8† A +Cannone da 75/27 NT QSU H6[S2+]†[1] NT QSU 9† A C H†1 N +Obice da 75/18 NT QSU H6[S2+]†[1] s8 NT QSU s8 10† A H†1 N +Cannone da 75/32 NT QSU H6[S2+]†[1] s8 NT QSU s8 11† H†1 +Obice da 100/17 NT H6[S2+]†[1] NT 12† A H†1 N +Cannone da 105/28 NT s8 NT s8 13† N +Obice 149/13 NT NT 14† N +Cannone da 149/35 NT RFNM no IF Acq. NA†[1] s8 NT RFNM no IF Acq. NA†[1] s8 15† B†1 N R +Cannone da 149/40 NT RFNM NT RFNM 16† N +Cannone-mitr. da 20/65 T LF [NT, 20†, 2 ROF] T LF [NT, 20†, 2 ROF] 17† A C N +Cannone-aa da 75/39 T "16" AP TK#† T "16" AP TK#† 18† n/a +Cannone-aa da 75/46 T T 19† N +Cannone-aa da 90/53 T T 20† N R diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1943.txt new file mode 100644 index 0000000..ea221b1 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1943.txt @@ -0,0 +1,24 @@ +=== ordnance/italian/1943 === + +Name Capabilities (effective) # Notes +---------------------- ----------------------------------- ----------------------------------- --- ------------------------- +Mortaio da 45 "Brixia" 4PP 4PP 1 N +Mortaio da 81/14 NT QSU IR s8 NT QSU IR s8 2† N +Fucile-cc S 5PP 5PP 3 N +Cannone-cc da 37/45 NT QSU NT QSU 4† C N R +Cannone da 47/32 NT QSU no Gunshield Towed[A1+]† NT QSU no Gunshield Towed† 5† A C N +Cannone da 65/17 NT no Gunshield H6[S2+]†[1] NT no Gunshield H6†[1] 6† A C H†1 N +Cannone da 70/15 NT QSU Acq. NA†[1] no Gunshield h-d NT QSU Acq. NA†[1] no Gunshield h-d 7† A B†1 R +Obice da 75/13 NT QSU NT QSU 8† A +Cannone da 75/27 NT QSU H6[S2+]†[1] NT QSU H6†[1] 9† A C H†1 N +Obice da 75/18 NT QSU H6[S2+]†[1] s8 NT QSU H6†[1] s8 10† A H†1 N +Cannone da 75/32 NT QSU H6[S2+]†[1] s8 NT QSU H6†[1] s8 11† H†1 +Obice da 100/17 NT H6[S2+]†[1] NT H6†[1] 12† A H†1 N +Cannone da 105/28 NT s8 NT s8 13† N +Obice 149/13 NT NT 14† N +Cannone da 149/35 NT RFNM no IF Acq. NA†[1] s8 NT RFNM no IF Acq. NA†[1] s8 15† B†1 N R +Cannone da 149/40 NT RFNM NT RFNM 16† N +Cannone-mitr. da 20/65 T LF [NT, 20†, 2 ROF] T LF [NT, 20†, 2 ROF] 17† A C N +Cannone-aa da 75/39 T "16" AP TK#† T "16" AP TK#† 18† n/a +Cannone-aa da 75/46 T T 19† N +Cannone-aa da 90/53 T T 20† N R diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1944.txt new file mode 100644 index 0000000..b5f42d7 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1944.txt @@ -0,0 +1,24 @@ +=== ordnance/italian/1944 === + +Name Capabilities (effective) # Notes +---------------------- ----------------------------------- ----------------------------------- --- ------------------------- +Mortaio da 45 "Brixia" 4PP 4PP 1 N +Mortaio da 81/14 NT QSU IR s8 NT QSU IR s8 2† N +Fucile-cc S 5PP 5PP 3 N +Cannone-cc da 37/45 NT QSU NT QSU 4† C N R +Cannone da 47/32 NT QSU no Gunshield Towed[A1+]† NT QSU no Gunshield Towed† 5† A C N +Cannone da 65/17 NT no Gunshield H6[S2+]†[1] NT no Gunshield H6†[1] 6† A C H†1 N +Cannone da 70/15 NT QSU Acq. NA†[1] no Gunshield h-d NT QSU Acq. NA†[1] no Gunshield h-d 7† A B†1 R +Obice da 75/13 NT QSU NT QSU 8† A +Cannone da 75/27 NT QSU H6[S2+]†[1] NT QSU H6†[1] 9† A C H†1 N +Obice da 75/18 NT QSU H6[S2+]†[1] s8 NT QSU H6†[1] s8 10† A H†1 N +Cannone da 75/32 NT QSU H6[S2+]†[1] s8 NT QSU H6†[1] s8 11† H†1 +Obice da 100/17 NT H6[S2+]†[1] NT H6†[1] 12† A H†1 N +Cannone da 105/28 NT s8 NT s8 13† N +Obice 149/13 NT NT 14† N +Cannone da 149/35 NT RFNM no IF Acq. NA†[1] s8 NT RFNM no IF Acq. NA†[1] s8 15† B†1 N R +Cannone da 149/40 NT RFNM NT RFNM 16† N +Cannone-mitr. da 20/65 T LF [NT, 20†, 2 ROF] T LF [NT, 20†, 2 ROF] 17† A C N +Cannone-aa da 75/39 T "16" AP TK#† T "16" AP TK#† 18† n/a +Cannone-aa da 75/46 T T 19† N +Cannone-aa da 90/53 T T 20† N R diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1945.txt new file mode 100644 index 0000000..3a4d1f0 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/italian/1945.txt @@ -0,0 +1,24 @@ +=== ordnance/italian/1945 === + +Name Capabilities (effective) # Notes +---------------------- ----------------------------------- ----------------------------------- --- ------------------------- +Mortaio da 45 "Brixia" 4PP 4PP 1 N +Mortaio da 81/14 NT QSU IR s8 NT QSU IR s8 2† N +Fucile-cc S 5PP 5PP 3 N +Cannone-cc da 37/45 NT QSU NT QSU 4† C N R +Cannone da 47/32 NT QSU no Gunshield Towed[A1+]† NT QSU no Gunshield Towed† 5† A C N +Cannone da 65/17 NT no Gunshield H6[S2+]†[1] NT no Gunshield H6†[1] 6† A C H†1 N +Cannone da 70/15 NT QSU Acq. NA†[1] no Gunshield h-d NT QSU Acq. NA†[1] no Gunshield h-d 7† A B†1 R +Obice da 75/13 NT QSU NT QSU 8† A +Cannone da 75/27 NT QSU H6[S2+]†[1] NT QSU H6†[1] 9† A C H†1 N +Obice da 75/18 NT QSU H6[S2+]†[1] s8 NT QSU H6†[1] s8 10† A H†1 N +Cannone da 75/32 NT QSU H6[S2+]†[1] s8 NT QSU H6†[1] s8 11† H†1 +Obice da 100/17 NT H6[S2+]†[1] NT H6†[1] 12† A H†1 N +Cannone da 105/28 NT s8 NT s8 13† N +Obice 149/13 NT NT 14† N +Cannone da 149/35 NT RFNM no IF Acq. NA†[1] s8 NT RFNM no IF Acq. NA†[1] s8 15† B†1 N R +Cannone da 149/40 NT RFNM NT RFNM 16† N +Cannone-mitr. da 20/65 T LF [NT, 20†, 2 ROF] T LF [NT, 20†, 2 ROF] 17† A C N +Cannone-aa da 75/39 T "16" AP TK#† T "16" AP TK#† 18† n/a +Cannone-aa da 75/46 T T 19† N +Cannone-aa da 90/53 T T 20† N R diff --git a/vasl_templates/webapp/tests/test_capabilities.py b/vasl_templates/webapp/tests/test_capabilities.py index 5add455..cd5f6af 100644 --- a/vasl_templates/webapp/tests/test_capabilities.py +++ b/vasl_templates/webapp/tests/test_capabilities.py @@ -228,6 +228,23 @@ def test_month_capabilities( webapp, webdriver ): _check_capabilities( webdriver, webapp, *vehicle, "ETO", "06/1944", "WP7\u20201 s8" ) _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1945", "WP7\u20201 s8" ) + # Cannone da 47/32: Towed(A1+)† + ordnance = [ "italian", "ordnance", "Cannone da 47/32" ] + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1940", "NT QSU no Gunshield" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "07/1941", "NT QSU no Gunshield" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "08/1941", "NT QSU no Gunshield Towed\u2020" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1942", "NT QSU no Gunshield Towed\u2020" ) + + # Cannone da 65/17, 75/27, 75/32 + Obice da 75/18: H6(S2+)†1 + for vo_name in ("Cannone da 65/17", "Cannone da 75/27","Cannone da 75/32","Obice da 75/18"): + ordnance = [ "italian", "ordnance", vo_name ] + val = _get_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941" ) + assert "H6" not in val + assert _get_capabilities( webdriver, webapp, *ordnance, "ETO", "08/1942" ) == val + val2 = _get_capabilities( webdriver, webapp, *ordnance, "ETO", "09/1942" ) + assert "H6\u20201" in val2 + assert _get_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1943" ) == val2 + # --------------------------------------------------------------------- @pytest.mark.skipif( @@ -308,7 +325,15 @@ def _check_capabilities( webdriver, webapp, nat, vo_type, vo_name, scenario_theater, scenario_date, expected, row=None ): #pylint: disable=too-many-arguments - """Check the vehicle/ordnance capabilities for the specified parameters. + """Check the vehicle/ordnance capabilities for the specified parameters.""" + capabilities = _get_capabilities( webdriver, webapp, nat, vo_type, vo_name, scenario_theater, scenario_date, row ) + assert capabilities == expected + +def _get_capabilities( webdriver, webapp, + nat, vo_type, vo_name, scenario_theater, scenario_date, + row=None +): #pylint: disable=too-many-arguments + """Get the vehicle/ordnance capabilities for the specified parameters. NOTE: We're only interested in checking the generated capabilities, not testing the UI, so we use a V/O report to get the information out of the webapp, which is significantly faster. @@ -328,10 +353,9 @@ def _check_capabilities( webdriver, webapp, # check the capabilities if vo_type == "vehicles": assert "Capabilities" in results[0][4] - capabilities = results[row_no][5] + return results[row_no][5] elif vo_type == "ordnance": assert "Capabilities" in results[0][1] - capabilities = results[row_no][2] + return results[row_no][2] else: assert False - assert capabilities == expected