From 673877bc5b92f35fbe9a4aca15fcff6af7f8eb5b Mon Sep 17 00:00:00 2001 From: Taka Date: Fri, 31 Aug 2018 09:50:24 +0000 Subject: [PATCH] Added US Ordnance. --- .../webapp/data/ordnance/american.json | 159 ++++++++++++++++ .../webapp/data/vehicles/american.json | 2 + vasl_templates/webapp/static/snippets.js | 43 ++++- .../vo-reports/ordnance/american/1940.txt | 31 ++++ .../vo-reports/ordnance/american/1941.txt | 31 ++++ .../vo-reports/ordnance/american/1942.txt | 31 ++++ .../vo-reports/ordnance/american/1943.txt | 31 ++++ .../vo-reports/ordnance/american/1944.txt | 31 ++++ .../vo-reports/ordnance/american/1945.txt | 31 ++++ .../vo-reports/vehicles/american/1940.txt | 4 + .../vo-reports/vehicles/american/1941.txt | 4 + .../vo-reports/vehicles/american/1942.txt | 4 + .../vo-reports/vehicles/american/1943.txt | 4 + .../vo-reports/vehicles/american/1944.txt | 4 + .../vo-reports/vehicles/american/1945.txt | 4 + .../vo-reports/vehicles/russian/1944.txt | 2 +- .../vo-reports/vehicles/russian/1945.txt | 174 +++++++++--------- .../webapp/tests/test_vo_reports.py | 22 ++- 18 files changed, 507 insertions(+), 105 deletions(-) create mode 100644 vasl_templates/webapp/data/ordnance/american.json create mode 100644 vasl_templates/webapp/data/vehicles/american.json create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt create mode 100644 vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt diff --git a/vasl_templates/webapp/data/ordnance/american.json b/vasl_templates/webapp/data/ordnance/american.json new file mode 100644 index 0000000..0859ddc --- /dev/null +++ b/vasl_templates/webapp/data/ordnance/american.json @@ -0,0 +1,159 @@ +[ + +{ "name": "M2 60mm Mortar", + "capabilities": [ "IR" ], + "capabilities2": { "WP": [ [7,5] ] }, + "capabilities_other": [ "5PP", "OBA\u2020" ], + "note_number": "1\u2020", + "notes": [ "F", "N" ] +}, +{ "name": "M19 60mm Mortar", + "capabilities": [ "IR" ], + "capabilities2": { "WP": [ [6,5] ] }, + "capabilities_other": [ "4PP" ], + "note_number": "2", + "notes": [ "F" ] +}, +{ "name": "M1 81mm Mortar", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "WP": 8 }, + "note_number": "3", + "notes": [ "F", "N" ] +}, +{ "name": "M2 4.2-in. Mortar", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "WP": 10 }, + "note_number": "4\u2020" +}, +{ "name": "T25 155mm Mortar", + "capabilities": [ "NT" ], + "capabilities2": { "WP": 8 }, + "note_number": "5\u2020", + "notes": [ "P" ] +}, +{ "name": "M3A1 37mm AT Gun", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "C": [ [7,"A2+"], "\u20201" ] }, + "note_number": "6\u2020", + "notes": [ "C\u20201", "N" ] +}, +{ "name": "M1 57mm AT Gun", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "HE": [ [7,"J4E"], [7,5], "\u2020" ], "D": [ [4,"J4+E"], "\u2020" ] }, + "note_number": "7\u2020" +}, +{ "name": "M5 3-in. AT Gun", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "A": [ [4,4], [5,5], "\u2020" ], "s": [ [6,5] ] }, + "note_number": "8\u2020", + "notes": [ "P" ] +}, +{ "name": "T32 37mm Manpack Gun", + "capabilities": [ "5PP (3PP dm)\u2020", "C5\u20201", "crewed\u20202" ], + "note_number": "9\u2020", + "notes": [ "C\u20201", "D\u20202", "F" ] +}, +{ "name": "M18 57mm Recoilless Rifle", + "capabilities": [ "3PP", "crewed\u20201" ], + "capabilities2": { "H": 7, "WP": 6 }, + "note_number": "10", + "notes": [ "D\u20201", "E\u2020" ] +}, +{ "name": "M20 75mm Recoilless Rifle", + "capabilities": [ "5PP", "crewed\u20201" ], + "capabilities2": { "H": 7, "WP": 7 }, + "note_number": "11", + "notes": [ "D\u20201", "E\u2020" ] +}, +{ "name": "M1A1 75mm Pack Howitzer", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "H": 7, "WP": 8, "C": [ [4,"4+"], "\u20201" ] }, + "note_number": "12\u2020", + "notes": [ "C\u20201", "F" ] +}, +{ "name": "M1897A2 75mm Gun", + "capabilities": [ "NT", "QSU" ], + "capabilities2": { "WP": 8 }, + "note_number": "13", + "notes": [ "P" ] +}, +{ "name": "M2A1 105mm Howitzer", + "capabilities": [ "NT" ], + "capabilities2": { "H": 6, "s": 7, "WP": 8, "C": [ [7,"4+P"], "\u20201" ] }, + "note_number": "14\u2020", + "notes": [ "C\u20201", "N" ] +}, +{ "name": "M3 105mm Howitzer", + "capabilities": [ "NT" ], + "capabilities2": { "H": 7, "s": 7, "WP": 8, "C": [ [7,"P"], "\u20201" ] }, + "note_number": "15\u2020", + "notes": [ "C\u20201" ] +}, +{ "name": "M1 4.5-in. Gun", + "capabilities": [ "NT" ], + "note_number": "16\u2020", + "notes": [ "P" ] +}, +{ "name": "M1918 155mm Howitzer", + "capabilities": [ "NT" ], + "capabilities2": { "s": [ [7,"3+"] ], "WP": 8 }, + "note_number": "17\u2020", + "notes": [ "N" ] +}, +{ "name": "M1 155mm Howitzer", + "capabilities": [ "NT" ], + "capabilities2": { "s": 7, "WP": 8 }, + "note_number": "18\u2020", + "notes": [ "N" ] +}, +{ "name": "M1918M1 155mm Gun", + "capabilities": [ "NT", "RFNM", "AP4\u20201", "no IF" ], + "capabilities2": { "WP": 8 }, + "note_number": "19\u2020", + "notes": [ "A\u20201", "N" ] +}, +{ "name": "M1A1 155mm Gun", + "capabilities": [ "NT", "RFNM", "AP4\u20201", "no IF" ], + "capabilities2": { "s": [ [7,5] ], "WP": 8 }, + "note_number": "20\u2020", + "notes": [ "A\u20201" ] +}, +{ "name": "M1 8-in. Howitzer", + "capabilities": [ "NT", "RFNM", "no IF" ], + "note_number": "21\u2020" +}, +{ "name": "M51 Multiple .50-cal MG Carriage", + "capabilities": [ "T" ], + "capabilities2": { "LF": [ "2 ROF", "20 IFE", "B11" ] }, + "capabilities_other": [ "4 TK DR\u2020" ], + "note_number": "22\u2020" +}, +{ "name": "M1A2 37mm AA Gun", + "capabilities": [ "T" ], + "note_number": "23\u2020", + "notes": [ "N" ] +}, +{ "name": "M1 40mm AA Gun", + "capabilities": [ "T" ], + "capabilities2": { "LF": [ "40\u20201", "2 ROF" ] }, + "note_number": "24\u2020", + "notes": [ "B\u20201" ] +}, +{ "name": "M3 3-in. AA Gun", + "capabilities": [ "T", "NM" ], + "note_number": "25", + "notes": [ "P" ] +}, +{ "name": "M1A1 90mm AA Gun", + "capabilities": [ "T", "NM" ], + "note_number": "26\u2020", + "notes": [ "N" ] +}, +{ "name": "M2 90mm AA Gun", + "capabilities": [ "T" ], + "capabilities2": { "LF": [ "90\u2020", "1 ROF", "B11" ] }, + "note_number": "27\u20201", + "notes": [ "B\u2020" ] +} + +] diff --git a/vasl_templates/webapp/data/vehicles/american.json b/vasl_templates/webapp/data/vehicles/american.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/american.json @@ -0,0 +1,2 @@ +{ +} diff --git a/vasl_templates/webapp/static/snippets.js b/vasl_templates/webapp/static/snippets.js index 8dcb97d..25f0ab4 100644 --- a/vasl_templates/webapp/static/snippets.js +++ b/vasl_templates/webapp/static/snippets.js @@ -277,7 +277,7 @@ function make_capabilities( entry, scenario_year, scenario_month, check_date_cap capabilities.push( "LF [" + entry.capabilities2[key].join(", ") + "]" ) ; continue ; } - if ( $.inArray( key, ["HE","A","D","sD","sN","WP"] ) === -1 ) { + if ( $.inArray( key, ["HE","AP","A","D","C","s","sD","sN","WP"] ) === -1 ) { unexpected_caps.push( key ) ; continue ; } @@ -337,25 +337,38 @@ function make_raw_capability( name, capability ) // generate the raw capability string var buf = [ name ] ; for ( var i=0 ; i < capability.length ; ++i ) { - buf.push( escapeHTML( capability[i][0] ) ) ; - if ( capability[i][1] ) - buf.push( "", escapeHTML( capability[i][1] ), "" ) ; + if ( typeof(capability[i]) === "string" ) + buf.push( capability[i] ) ; + else { + buf.push( escapeHTML( capability[i][0] ) ) ; + if ( capability[i][1] ) + buf.push( "", escapeHTML( capability[i][1] ), "" ) ; + } } return buf.join( "" ) ; } function select_capability_by_date( capabilities, scenario_year, scenario_month ) { - var MONTH_NAMES = { F: 2, J: 6, } ; + var MONTH_NAMES = { F:2, J:6, A:8 } ; var val = null ; + var ref = has_ref( capabilities ) ; for ( var i=0 ; i < capabilities.length ; ++i ) { - if ( capabilities[i] == "\u2020" ) - continue ; - // remove any trailing "+" (why is it even there?) + + // check for a ETO/PTO-only flag var cap = capabilities[i][1].toString() ; + if ( cap.substring( cap.length-1 ) === "E" ) + cap = cap.substring( 0, cap.length-1 ) ; // FIXME! handle this properly + if ( cap.substring( cap.length-1 ) === "P" ) + cap = cap.substring( 0, cap.length-1 ) ; // FIXME! handle this properly + // remove any trailing "+" (FIXME! What does it even mean? Doesn't make sense :-/) if ( cap.substring( cap.length-1 ) == "+" ) cap = cap.substring( 0, cap.length-1 ) ; + if ( ! cap ) { + val = capabilities[i][0] ; // nb: the capability is always available + break ; + } // parse the month/year the capability becomes available var month = MONTH_NAMES[ cap.substring(0,1) ] ; if ( month ) @@ -371,7 +384,19 @@ function select_capability_by_date( capabilities, scenario_year, scenario_month val = capabilities[i][0] ; } } - return val ; + if ( ! val ) + return val ; + return ref ? val+ref : val ; +} + +function has_ref( val ) +{ + var last = val[ val.length-1 ] ; + if ( typeof(last) === "string" && last.match( /^\u2020(\d<\/sup>)?$/ ) ) { + val.pop() ; + return last ; + } + return null ; } function make_crew_survival( entry ) diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt new file mode 100644 index 0000000..1262bb3 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt @@ -0,0 +1,31 @@ +=== ordnance/american/1940 === + +Name Capabilities (effective) # Notes +-------------------------------- ---------------------------------- ---------------------------------- ------ ------------------------------- +M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† 1† F N +M19 60mm Mortar IR WP6[5] 4PP IR 4PP 2 F +M1 81mm Mortar NT QSU WP8 NT QSU WP8 3 F N +M2 4.2-in. Mortar NT QSU WP10 NT QSU WP10 4† n/a +T25 155mm Mortar NT WP8 NT WP8 5† P +M3A1 37mm AT Gun NT QSU C7[A2+]†[1] NT QSU 6† C†1 N +M1 57mm AT Gun NT QSU D4[J4+E]† HE7[J4E]7[5]† NT QSU 7† n/a +M5 3-in. AT Gun NT QSU A4[4]5[5]† s6[5] NT QSU 8† P +T32 37mm Manpack Gun 5PP (3PP dm)† C5†[1] crewed†[2] 5PP (3PP dm)† C5†[1] crewed†[2] 9† C†1 D†2 F +M18 57mm Recoilless Rifle 3PP crewed†[1] H7 WP6 3PP crewed†[1] H7 WP6 10 D†1 E† +M20 75mm Recoilless Rifle 5PP crewed†[1] H7 WP7 5PP crewed†[1] H7 WP7 11 D†1 E† +M1A1 75mm Pack Howitzer NT QSU C4[4+]†[1] H7 WP8 NT QSU H7 WP8 12† C†1 F +M1897A2 75mm Gun NT QSU WP8 NT QSU WP8 13 P +M2A1 105mm Howitzer NT C7[4+P]†[1] H6 WP8 s7 NT H6 WP8 s7 14† C†1 N +M3 105mm Howitzer NT C7[P]†[1] H7 WP8 s7 NT C7†[1] H7 WP8 s7 15† C†1 +M1 4.5-in. Gun NT NT 16† P +M1918 155mm Howitzer NT WP8 s7[3+] NT WP8 17† N +M1 155mm Howitzer NT WP8 s7 NT WP8 s7 18† N +M1918M1 155mm Gun NT RFNM AP4†[1] no IF WP8 NT RFNM AP4†[1] no IF WP8 19† A†1 N +M1A1 155mm Gun NT RFNM AP4†[1] no IF WP8 s7[5] NT RFNM AP4†[1] no IF WP8 20† A†1 +M1 8-in. Howitzer NT RFNM no IF NT RFNM no IF 21† n/a +M51 Multiple .50-cal MG Carriage T LF [2 ROF, 20 IFE, B11] 4 TK DR† T LF [2 ROF, 20 IFE, B11] 4 TK DR† 22† n/a +M1A2 37mm AA Gun T T 23† N +M1 40mm AA Gun T LF [40†[1], 2 ROF] T LF [40†[1], 2 ROF] 24† B†1 +M3 3-in. AA Gun T NM T NM 25 P +M1A1 90mm AA Gun T NM T NM 26† N +M2 90mm AA Gun T LF [90†, 1 ROF, B11] T LF [90†, 1 ROF, B11] 27†[1] B† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt new file mode 100644 index 0000000..91f0bf0 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt @@ -0,0 +1,31 @@ +=== ordnance/american/1941 === + +Name Capabilities (effective) # Notes +-------------------------------- ---------------------------------- ---------------------------------- ------ ------------------------------- +M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† 1† F N +M19 60mm Mortar IR WP6[5] 4PP IR 4PP 2 F +M1 81mm Mortar NT QSU WP8 NT QSU WP8 3 F N +M2 4.2-in. Mortar NT QSU WP10 NT QSU WP10 4† n/a +T25 155mm Mortar NT WP8 NT WP8 5† P +M3A1 37mm AT Gun NT QSU C7[A2+]†[1] NT QSU 6† C†1 N +M1 57mm AT Gun NT QSU D4[J4+E]† HE7[J4E]7[5]† NT QSU 7† n/a +M5 3-in. AT Gun NT QSU A4[4]5[5]† s6[5] NT QSU 8† P +T32 37mm Manpack Gun 5PP (3PP dm)† C5†[1] crewed†[2] 5PP (3PP dm)† C5†[1] crewed†[2] 9† C†1 D†2 F +M18 57mm Recoilless Rifle 3PP crewed†[1] H7 WP6 3PP crewed†[1] H7 WP6 10 D†1 E† +M20 75mm Recoilless Rifle 5PP crewed†[1] H7 WP7 5PP crewed†[1] H7 WP7 11 D†1 E† +M1A1 75mm Pack Howitzer NT QSU C4[4+]†[1] H7 WP8 NT QSU H7 WP8 12† C†1 F +M1897A2 75mm Gun NT QSU WP8 NT QSU WP8 13 P +M2A1 105mm Howitzer NT C7[4+P]†[1] H6 WP8 s7 NT H6 WP8 s7 14† C†1 N +M3 105mm Howitzer NT C7[P]†[1] H7 WP8 s7 NT C7†[1] H7 WP8 s7 15† C†1 +M1 4.5-in. Gun NT NT 16† P +M1918 155mm Howitzer NT WP8 s7[3+] NT WP8 17† N +M1 155mm Howitzer NT WP8 s7 NT WP8 s7 18† N +M1918M1 155mm Gun NT RFNM AP4†[1] no IF WP8 NT RFNM AP4†[1] no IF WP8 19† A†1 N +M1A1 155mm Gun NT RFNM AP4†[1] no IF WP8 s7[5] NT RFNM AP4†[1] no IF WP8 20† A†1 +M1 8-in. Howitzer NT RFNM no IF NT RFNM no IF 21† n/a +M51 Multiple .50-cal MG Carriage T LF [2 ROF, 20 IFE, B11] 4 TK DR† T LF [2 ROF, 20 IFE, B11] 4 TK DR† 22† n/a +M1A2 37mm AA Gun T T 23† N +M1 40mm AA Gun T LF [40†[1], 2 ROF] T LF [40†[1], 2 ROF] 24† B†1 +M3 3-in. AA Gun T NM T NM 25 P +M1A1 90mm AA Gun T NM T NM 26† N +M2 90mm AA Gun T LF [90†, 1 ROF, B11] T LF [90†, 1 ROF, B11] 27†[1] B† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt new file mode 100644 index 0000000..20b9809 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt @@ -0,0 +1,31 @@ +=== ordnance/american/1942 === + +Name Capabilities (effective) # Notes +-------------------------------- ---------------------------------- ---------------------------------- ------ ------------------------------- +M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† 1† F N +M19 60mm Mortar IR WP6[5] 4PP IR 4PP 2 F +M1 81mm Mortar NT QSU WP8 NT QSU WP8 3 F N +M2 4.2-in. Mortar NT QSU WP10 NT QSU WP10 4† n/a +T25 155mm Mortar NT WP8 NT WP8 5† P +M3A1 37mm AT Gun NT QSU C7[A2+]†[1] NT QSU 6† C†1 N +M1 57mm AT Gun NT QSU D4[J4+E]† HE7[J4E]7[5]† NT QSU 7† n/a +M5 3-in. AT Gun NT QSU A4[4]5[5]† s6[5] NT QSU 8† P +T32 37mm Manpack Gun 5PP (3PP dm)† C5†[1] crewed†[2] 5PP (3PP dm)† C5†[1] crewed†[2] 9† C†1 D†2 F +M18 57mm Recoilless Rifle 3PP crewed†[1] H7 WP6 3PP crewed†[1] H7 WP6 10 D†1 E† +M20 75mm Recoilless Rifle 5PP crewed†[1] H7 WP7 5PP crewed†[1] H7 WP7 11 D†1 E† +M1A1 75mm Pack Howitzer NT QSU C4[4+]†[1] H7 WP8 NT QSU H7 WP8 12† C†1 F +M1897A2 75mm Gun NT QSU WP8 NT QSU WP8 13 P +M2A1 105mm Howitzer NT C7[4+P]†[1] H6 WP8 s7 NT H6 WP8 s7 14† C†1 N +M3 105mm Howitzer NT C7[P]†[1] H7 WP8 s7 NT C7†[1] H7 WP8 s7 15† C†1 +M1 4.5-in. Gun NT NT 16† P +M1918 155mm Howitzer NT WP8 s7[3+] NT WP8 17† N +M1 155mm Howitzer NT WP8 s7 NT WP8 s7 18† N +M1918M1 155mm Gun NT RFNM AP4†[1] no IF WP8 NT RFNM AP4†[1] no IF WP8 19† A†1 N +M1A1 155mm Gun NT RFNM AP4†[1] no IF WP8 s7[5] NT RFNM AP4†[1] no IF WP8 20† A†1 +M1 8-in. Howitzer NT RFNM no IF NT RFNM no IF 21† n/a +M51 Multiple .50-cal MG Carriage T LF [2 ROF, 20 IFE, B11] 4 TK DR† T LF [2 ROF, 20 IFE, B11] 4 TK DR† 22† n/a +M1A2 37mm AA Gun T T 23† N +M1 40mm AA Gun T LF [40†[1], 2 ROF] T LF [40†[1], 2 ROF] 24† B†1 +M3 3-in. AA Gun T NM T NM 25 P +M1A1 90mm AA Gun T NM T NM 26† N +M2 90mm AA Gun T LF [90†, 1 ROF, B11] T LF [90†, 1 ROF, B11] 27†[1] B† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt new file mode 100644 index 0000000..2339ad4 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt @@ -0,0 +1,31 @@ +=== ordnance/american/1943 === + +Name Capabilities (effective) # Notes +-------------------------------- ---------------------------------- ---------------------------------- ------ ------------------------------- +M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† 1† F N +M19 60mm Mortar IR WP6[5] 4PP IR 4PP 2 F +M1 81mm Mortar NT QSU WP8 NT QSU WP8 3 F N +M2 4.2-in. Mortar NT QSU WP10 NT QSU WP10 4† n/a +T25 155mm Mortar NT WP8 NT WP8 5† P +M3A1 37mm AT Gun NT QSU C7[A2+]†[1] NT QSU C7†[1] 6† C†1 N +M1 57mm AT Gun NT QSU D4[J4+E]† HE7[J4E]7[5]† NT QSU 7† n/a +M5 3-in. AT Gun NT QSU A4[4]5[5]† s6[5] NT QSU 8† P +T32 37mm Manpack Gun 5PP (3PP dm)† C5†[1] crewed†[2] 5PP (3PP dm)† C5†[1] crewed†[2] 9† C†1 D†2 F +M18 57mm Recoilless Rifle 3PP crewed†[1] H7 WP6 3PP crewed†[1] H7 WP6 10 D†1 E† +M20 75mm Recoilless Rifle 5PP crewed†[1] H7 WP7 5PP crewed†[1] H7 WP7 11 D†1 E† +M1A1 75mm Pack Howitzer NT QSU C4[4+]†[1] H7 WP8 NT QSU H7 WP8 12† C†1 F +M1897A2 75mm Gun NT QSU WP8 NT QSU WP8 13 P +M2A1 105mm Howitzer NT C7[4+P]†[1] H6 WP8 s7 NT H6 WP8 s7 14† C†1 N +M3 105mm Howitzer NT C7[P]†[1] H7 WP8 s7 NT C7†[1] H7 WP8 s7 15† C†1 +M1 4.5-in. Gun NT NT 16† P +M1918 155mm Howitzer NT WP8 s7[3+] NT WP8 s7 17† N +M1 155mm Howitzer NT WP8 s7 NT WP8 s7 18† N +M1918M1 155mm Gun NT RFNM AP4†[1] no IF WP8 NT RFNM AP4†[1] no IF WP8 19† A†1 N +M1A1 155mm Gun NT RFNM AP4†[1] no IF WP8 s7[5] NT RFNM AP4†[1] no IF WP8 20† A†1 +M1 8-in. Howitzer NT RFNM no IF NT RFNM no IF 21† n/a +M51 Multiple .50-cal MG Carriage T LF [2 ROF, 20 IFE, B11] 4 TK DR† T LF [2 ROF, 20 IFE, B11] 4 TK DR† 22† n/a +M1A2 37mm AA Gun T T 23† N +M1 40mm AA Gun T LF [40†[1], 2 ROF] T LF [40†[1], 2 ROF] 24† B†1 +M3 3-in. AA Gun T NM T NM 25 P +M1A1 90mm AA Gun T NM T NM 26† N +M2 90mm AA Gun T LF [90†, 1 ROF, B11] T LF [90†, 1 ROF, B11] 27†[1] B† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt new file mode 100644 index 0000000..1a1c778 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt @@ -0,0 +1,31 @@ +=== ordnance/american/1944 === + +Name Capabilities (effective) # Notes +-------------------------------- ---------------------------------- ---------------------------------- ------ ------------------------------- +M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† 1† F N +M19 60mm Mortar IR WP6[5] 4PP IR 4PP 2 F +M1 81mm Mortar NT QSU WP8 NT QSU WP8 3 F N +M2 4.2-in. Mortar NT QSU WP10 NT QSU WP10 4† n/a +T25 155mm Mortar NT WP8 NT WP8 5† P +M3A1 37mm AT Gun NT QSU C7[A2+]†[1] NT QSU C7†[1] 6† C†1 N +M1 57mm AT Gun NT QSU D4[J4+E]† HE7[J4E]7[5]† NT QSU 7† n/a +M5 3-in. AT Gun NT QSU A4[4]5[5]† s6[5] NT QSU A4† 8† P +T32 37mm Manpack Gun 5PP (3PP dm)† C5†[1] crewed†[2] 5PP (3PP dm)† C5†[1] crewed†[2] 9† C†1 D†2 F +M18 57mm Recoilless Rifle 3PP crewed†[1] H7 WP6 3PP crewed†[1] H7 WP6 10 D†1 E† +M20 75mm Recoilless Rifle 5PP crewed†[1] H7 WP7 5PP crewed†[1] H7 WP7 11 D†1 E† +M1A1 75mm Pack Howitzer NT QSU C4[4+]†[1] H7 WP8 NT QSU C4†[1] H7 WP8 12† C†1 F +M1897A2 75mm Gun NT QSU WP8 NT QSU WP8 13 P +M2A1 105mm Howitzer NT C7[4+P]†[1] H6 WP8 s7 NT C7†[1] H6 WP8 s7 14† C†1 N +M3 105mm Howitzer NT C7[P]†[1] H7 WP8 s7 NT C7†[1] H7 WP8 s7 15† C†1 +M1 4.5-in. Gun NT NT 16† P +M1918 155mm Howitzer NT WP8 s7[3+] NT WP8 s7 17† N +M1 155mm Howitzer NT WP8 s7 NT WP8 s7 18† N +M1918M1 155mm Gun NT RFNM AP4†[1] no IF WP8 NT RFNM AP4†[1] no IF WP8 19† A†1 N +M1A1 155mm Gun NT RFNM AP4†[1] no IF WP8 s7[5] NT RFNM AP4†[1] no IF WP8 20† A†1 +M1 8-in. Howitzer NT RFNM no IF NT RFNM no IF 21† n/a +M51 Multiple .50-cal MG Carriage T LF [2 ROF, 20 IFE, B11] 4 TK DR† T LF [2 ROF, 20 IFE, B11] 4 TK DR† 22† n/a +M1A2 37mm AA Gun T T 23† N +M1 40mm AA Gun T LF [40†[1], 2 ROF] T LF [40†[1], 2 ROF] 24† B†1 +M3 3-in. AA Gun T NM T NM 25 P +M1A1 90mm AA Gun T NM T NM 26† N +M2 90mm AA Gun T LF [90†, 1 ROF, B11] T LF [90†, 1 ROF, B11] 27†[1] B† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt new file mode 100644 index 0000000..e55a5e0 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt @@ -0,0 +1,31 @@ +=== ordnance/american/1945 === + +Name Capabilities (effective) # Notes +-------------------------------- ---------------------------------- ---------------------------------- ------ ------------------------------- +M2 60mm Mortar IR WP7[5] 5PP OBA† IR WP7 5PP OBA† 1† F N +M19 60mm Mortar IR WP6[5] 4PP IR WP6 4PP 2 F +M1 81mm Mortar NT QSU WP8 NT QSU WP8 3 F N +M2 4.2-in. Mortar NT QSU WP10 NT QSU WP10 4† n/a +T25 155mm Mortar NT WP8 NT WP8 5† P +M3A1 37mm AT Gun NT QSU C7[A2+]†[1] NT QSU C7†[1] 6† C†1 N +M1 57mm AT Gun NT QSU D4[J4+E]† HE7[J4E]7[5]† NT QSU D4† HE7† 7† n/a +M5 3-in. AT Gun NT QSU A4[4]5[5]† s6[5] NT QSU A5† s6 8† P +T32 37mm Manpack Gun 5PP (3PP dm)† C5†[1] crewed†[2] 5PP (3PP dm)† C5†[1] crewed†[2] 9† C†1 D†2 F +M18 57mm Recoilless Rifle 3PP crewed†[1] H7 WP6 3PP crewed†[1] H7 WP6 10 D†1 E† +M20 75mm Recoilless Rifle 5PP crewed†[1] H7 WP7 5PP crewed†[1] H7 WP7 11 D†1 E† +M1A1 75mm Pack Howitzer NT QSU C4[4+]†[1] H7 WP8 NT QSU C4†[1] H7 WP8 12† C†1 F +M1897A2 75mm Gun NT QSU WP8 NT QSU WP8 13 P +M2A1 105mm Howitzer NT C7[4+P]†[1] H6 WP8 s7 NT C7†[1] H6 WP8 s7 14† C†1 N +M3 105mm Howitzer NT C7[P]†[1] H7 WP8 s7 NT C7†[1] H7 WP8 s7 15† C†1 +M1 4.5-in. Gun NT NT 16† P +M1918 155mm Howitzer NT WP8 s7[3+] NT WP8 s7 17† N +M1 155mm Howitzer NT WP8 s7 NT WP8 s7 18† N +M1918M1 155mm Gun NT RFNM AP4†[1] no IF WP8 NT RFNM AP4†[1] no IF WP8 19† A†1 N +M1A1 155mm Gun NT RFNM AP4†[1] no IF WP8 s7[5] NT RFNM AP4†[1] no IF WP8 s7 20† A†1 +M1 8-in. Howitzer NT RFNM no IF NT RFNM no IF 21† n/a +M51 Multiple .50-cal MG Carriage T LF [2 ROF, 20 IFE, B11] 4 TK DR† T LF [2 ROF, 20 IFE, B11] 4 TK DR† 22† n/a +M1A2 37mm AA Gun T T 23† N +M1 40mm AA Gun T LF [40†[1], 2 ROF] T LF [40†[1], 2 ROF] 24† B†1 +M3 3-in. AA Gun T NM T NM 25 P +M1A1 90mm AA Gun T NM T NM 26† N +M2 90mm AA Gun T LF [90†, 1 ROF, B11] T LF [90†, 1 ROF, B11] 27†[1] B† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt new file mode 100644 index 0000000..690401e --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt @@ -0,0 +1,4 @@ +=== vehicles/american/1940 === + +Name Radio IF Crew survival Capabilities (effective) # Notes +------ ------- ---- --------------- -------------- ------------- --- ------- diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt new file mode 100644 index 0000000..6ca2d18 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt @@ -0,0 +1,4 @@ +=== vehicles/american/1941 === + +Name Radio IF Crew survival Capabilities (effective) # Notes +------ ------- ---- --------------- -------------- ------------- --- ------- diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt new file mode 100644 index 0000000..d1a72d9 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt @@ -0,0 +1,4 @@ +=== vehicles/american/1942 === + +Name Radio IF Crew survival Capabilities (effective) # Notes +------ ------- ---- --------------- -------------- ------------- --- ------- diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt new file mode 100644 index 0000000..72b3de7 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt @@ -0,0 +1,4 @@ +=== vehicles/american/1943 === + +Name Radio IF Crew survival Capabilities (effective) # Notes +------ ------- ---- --------------- -------------- ------------- --- ------- diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt new file mode 100644 index 0000000..debcef1 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt @@ -0,0 +1,4 @@ +=== vehicles/american/1944 === + +Name Radio IF Crew survival Capabilities (effective) # Notes +------ ------- ---- --------------- -------------- ------------- --- ------- diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt new file mode 100644 index 0000000..037f64e --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt @@ -0,0 +1,4 @@ +=== vehicles/american/1945 === + +Name Radio IF Crew survival Capabilities (effective) # Notes +------ ------- ---- --------------- -------------- ------------- --- ------- diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt index 8002a72..1945211 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt @@ -83,7 +83,7 @@ Sherman III(L)(a) n/a yes CS 6 (brew up) WP7 s5 s Matilda II(b) n/a yes CS 5 sD6 sD6 51† M†1 N LL Valentine V(b) n/a yes CS 4 sM8 sM8 52.1 N LL Valentine VIII(b) n/a yes CS 4 HE7 sD6 HE7 sD6 52.2 N LL -Churchill III(b) n/a yes CS 7 D6[J4]7[5]† HE7[F3]8[4+]† sD6[4+] sM8† HE8 sD6 sM8† 53† N LL +Churchill III(b) n/a yes CS 7 D6[J4]7[5]† HE7[F3]8[4+]† sD6[4+] sM8† HE8† sD6 sM8† 53† N LL M3A1 Scout Car(a) n/a yes CS 4 n/a n/a 54† N LL Jeep GPA(a) n/a yes cs 2 n/a n/a 59 H† L†1 DUKW(a) n/a yes cs 7 n/a n/a 60† n/a diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt index 95b2f4a..b55abf9 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt @@ -1,89 +1,89 @@ === vehicles/russian/1945 === -Name Radio IF Crew survival Capabilities (effective) # Notes ------------------ ------- ---- ------------------------------------ -------------------------------------- --------------- ----- --------------------- -T-37 ® yes CS 2 n/a n/a 1 H† M -T-27 ® yes CS 2 n/a n/a 1.1† M Q -T-40 ® yes CS 2 n/a n/a 2† H† -T-50 ® yes CS 4 A4[2] A4 3 n/a -T-60 M40 ® yes CS 2 n/a n/a 4 n/a -T-60 M42 ®† yes CS 2 n/a n/a 4 C† -T-70 ®† yes CS 2 A4[2] A4 5 C† -T-26 M33 ® yes CS 3 n/a n/a 6 D I† M P -T-26 M37/39 ® yes CS 3 n/a n/a 6 D M P -T-26 M31 ® yes CS 3 n/a n/a 6.1† M P -T-26 M32 ® yes CS 3 n/a n/a 6.2† M P -OT-26 ® yes CS 3 (brew up) n/a n/a 6.3† M P -ST-26 Bridgelayer n/a yes CS 3 n/a n/a 6.4† M -OT-133 ® yes CS 3 n/a n/a 7† M P -BT-2A ® yes CS 3 n/a n/a 7.1† M -BT-5 M34 ® yes CS 3 n/a n/a 8† M P -BT-7 M37 ® yes CS 3 n/a n/a 9 D I† M P -BT-7A n/a yes CS 3 AP7 s9 AP7 s9 10 M P -T-28 M34 ® yes CS 5 s8 s8 11† M -T-28 M34(L) ® yes CS 5 s8 s8 11.1† M -T-28E M40 ® yes CS 6 s8 s8 12† M -T-28E M40(L) ® yes CS 6 s8 s8 12.1† M -T-34 M40 ® yes CS 5 n/a n/a 13 M -T-34 M41 ®† yes CS 5 A4[2] A4 14† C† M -OT-34 ®† n/a CS 4 A2[2] AP7 A2 AP7 15† C† M -T-34 M43 n/a yes CS 5 A4[2] A4 16† n/a -T-43 ®† yes CS 5 A4[2] A4 17 C† M -T-34/85 n/a yes CS 6 A5[4] sD6† A5 sD6† 18† J† -M4/76(a) n/a yes CS 6 A3[4] s8 sM8 A3 s8 sM8 19† N -T-44 n/a yes CS 5 A6[5] A6 20 B† M -T-35 ® yes CS 8 s9 s9 21† M -SMK n/a yes CS 7 n/a n/a 21.1 M T† -T-100 n/a yes CS 7 n/a n/a 22.1 M T† -KV-1 M39/40 n/a yes CS 6 n/a n/a 22† M -KV-1E n/a yes CS 6 n/a n/a 23 D M -KV-1 M41 n/a yes CS 6 A4[2] A4 23 D M -KV-1 M42 n/a yes CS 6 A4[2] A4 23 D M -KV-2 n/a n/a CS 7 AP9 AP9 24† M -KV-8 n/a yes CS 6 A4[2] AP7 A4 AP7 15† D M -KV-1S n/a yes CS 6 A4[2] A4 25† n/a -KV-85 n/a yes CS 5 A4[3]5[4] A5 26 B† -IS-2 n/a n/a CS 6 n/a n/a 27 B† -IS-2m n/a n/a CS 6 n/a n/a 28 B† G† -IS-3 n/a n/a CS 6 sD6† sD6† 29 G† J† -SU-76M n/a yes CS 4 (brew up) A5[3] A5 30† n/a -SU-76i(g) n/a yes CS 5 A5[3] A5 31 K -SU-122 n/a n/a CS 5 H9 s8 H9 s8 32 n/a -SU-152 n/a n/a CS 6 n/a n/a 33† n/a -ISU-122 n/a n/a CS 6 s8 s8 34 G† -ISU-152 n/a n/a CS 6 n/a n/a 34 G† -SU-85 n/a yes CS 5 A5[3] HE7 s7 A5 HE7 s7 35 n/a -SU-100 n/a yes CS 5 HE7 HE7 36 n/a -SU-57(a) n/a yes CS 4 A5[3] HE7 A5 HE7 37 K -BA-20 ® yes CS 3 n/a n/a 38 n/a -BA-6 ® yes CS 4 A4[2] A4 39 n/a -BA-64B n/a yes CS 2 n/a n/a 40† A† -ZSU-37 n/a yes CS 4 n/a n/a 41† A† -SU-12 n/a yes CS 4 AP7 s8 AP7 s8 42 F† -GAZ-4M-AA n/a yes CS 4 n/a n/a 43† A† -ZIS-42-AA n/a yes CS 4 n/a n/a 44 A† F† -LANO AT ® yes CS 5 A4[2+] A4 44.1 n/a -LANO AA ® yes CS 5 n/a n/a 44.2† A†1 -IAG-10-AA n/a yes CS 4 AP7 AP7 45 A† F† -GAZ-67B n/a yes CS 2 n/a n/a 46 L† -Komsomolet n/a yes CS 2† n/a n/a 46.1† n/a -STZ-3 n/a yes cs 4 n/a n/a 46.2 n/a -STZ-5 n/a yes cs 7 n/a n/a 46.3 n/a -GAZ-MM n/a yes cs 6 n/a n/a 47 n/a -ZIS-5 n/a yes cs 7 n/a n/a 47 n/a -IAG-6 n/a yes cs 7 n/a n/a 47 n/a -NKL-6 n/a yes CS 2† n/a n/a 47.1† S†1 -NKL-16 n/a yes cs 2 n/a n/a 47.1† S†1 -NKL-26 n/a yes CS 2 n/a n/a 47.2† Q S†1 -RF-8-GAZ-98 n/a yes CS 3 n/a n/a 47.3† S†1 -Stuart III(a) n/a yes CS 4 C6 C6 48 N O LL -Lee(a) n/a yes CS 7 C4† s8† C4† s8† 49† B†1 N O LL -Sherman III(a) n/a yes CS 5 (brew up) WP6[J4+]† s8 WP6 s8 50† N O R†1 LL -Sherman III(L)(a) n/a yes CS 6 (brew up) WP7 s5 sM8 WP7 s5 sM8 50.1 N O R† LL -Matilda II(b) n/a yes CS 5 sD6 sD6 51† M†1 N LL -Valentine V(b) n/a yes CS 4 sM8 sM8 52.1 N LL -Valentine VIII(b) n/a yes CS 4 HE7 sD6 HE7 sD6 52.2 N LL -Churchill III(b) n/a yes CS 7 D6[J4]7[5]† HE7[F3]8[4+]† sD6[4+] sM8† D7 HE8 sD6 sM8† 53† N LL -M3A1 Scout Car(a) n/a yes CS 4 n/a n/a 54† N LL -Jeep GPA(a) n/a yes cs 2 n/a n/a 59 H† L†1 -DUKW(a) n/a yes cs 7 n/a n/a 60† n/a +Name Radio IF Crew survival Capabilities (effective) # Notes +----------------- ------- ---- ------------------------------------ -------------------------------------- ----------------- ----- --------------------- +T-37 ® yes CS 2 n/a n/a 1 H† M +T-27 ® yes CS 2 n/a n/a 1.1† M Q +T-40 ® yes CS 2 n/a n/a 2† H† +T-50 ® yes CS 4 A4[2] A4 3 n/a +T-60 M40 ® yes CS 2 n/a n/a 4 n/a +T-60 M42 ®† yes CS 2 n/a n/a 4 C† +T-70 ®† yes CS 2 A4[2] A4 5 C† +T-26 M33 ® yes CS 3 n/a n/a 6 D I† M P +T-26 M37/39 ® yes CS 3 n/a n/a 6 D M P +T-26 M31 ® yes CS 3 n/a n/a 6.1† M P +T-26 M32 ® yes CS 3 n/a n/a 6.2† M P +OT-26 ® yes CS 3 (brew up) n/a n/a 6.3† M P +ST-26 Bridgelayer n/a yes CS 3 n/a n/a 6.4† M +OT-133 ® yes CS 3 n/a n/a 7† M P +BT-2A ® yes CS 3 n/a n/a 7.1† M +BT-5 M34 ® yes CS 3 n/a n/a 8† M P +BT-7 M37 ® yes CS 3 n/a n/a 9 D I† M P +BT-7A n/a yes CS 3 AP7 s9 AP7 s9 10 M P +T-28 M34 ® yes CS 5 s8 s8 11† M +T-28 M34(L) ® yes CS 5 s8 s8 11.1† M +T-28E M40 ® yes CS 6 s8 s8 12† M +T-28E M40(L) ® yes CS 6 s8 s8 12.1† M +T-34 M40 ® yes CS 5 n/a n/a 13 M +T-34 M41 ®† yes CS 5 A4[2] A4 14† C† M +OT-34 ®† n/a CS 4 A2[2] AP7 A2 AP7 15† C† M +T-34 M43 n/a yes CS 5 A4[2] A4 16† n/a +T-43 ®† yes CS 5 A4[2] A4 17 C† M +T-34/85 n/a yes CS 6 A5[4] sD6† A5 sD6† 18† J† +M4/76(a) n/a yes CS 6 A3[4] s8 sM8 A3 s8 sM8 19† N +T-44 n/a yes CS 5 A6[5] A6 20 B† M +T-35 ® yes CS 8 s9 s9 21† M +SMK n/a yes CS 7 n/a n/a 21.1 M T† +T-100 n/a yes CS 7 n/a n/a 22.1 M T† +KV-1 M39/40 n/a yes CS 6 n/a n/a 22† M +KV-1E n/a yes CS 6 n/a n/a 23 D M +KV-1 M41 n/a yes CS 6 A4[2] A4 23 D M +KV-1 M42 n/a yes CS 6 A4[2] A4 23 D M +KV-2 n/a n/a CS 7 AP9 AP9 24† M +KV-8 n/a yes CS 6 A4[2] AP7 A4 AP7 15† D M +KV-1S n/a yes CS 6 A4[2] A4 25† n/a +KV-85 n/a yes CS 5 A4[3]5[4] A5 26 B† +IS-2 n/a n/a CS 6 n/a n/a 27 B† +IS-2m n/a n/a CS 6 n/a n/a 28 B† G† +IS-3 n/a n/a CS 6 sD6† sD6† 29 G† J† +SU-76M n/a yes CS 4 (brew up) A5[3] A5 30† n/a +SU-76i(g) n/a yes CS 5 A5[3] A5 31 K +SU-122 n/a n/a CS 5 H9 s8 H9 s8 32 n/a +SU-152 n/a n/a CS 6 n/a n/a 33† n/a +ISU-122 n/a n/a CS 6 s8 s8 34 G† +ISU-152 n/a n/a CS 6 n/a n/a 34 G† +SU-85 n/a yes CS 5 A5[3] HE7 s7 A5 HE7 s7 35 n/a +SU-100 n/a yes CS 5 HE7 HE7 36 n/a +SU-57(a) n/a yes CS 4 A5[3] HE7 A5 HE7 37 K +BA-20 ® yes CS 3 n/a n/a 38 n/a +BA-6 ® yes CS 4 A4[2] A4 39 n/a +BA-64B n/a yes CS 2 n/a n/a 40† A† +ZSU-37 n/a yes CS 4 n/a n/a 41† A† +SU-12 n/a yes CS 4 AP7 s8 AP7 s8 42 F† +GAZ-4M-AA n/a yes CS 4 n/a n/a 43† A† +ZIS-42-AA n/a yes CS 4 n/a n/a 44 A† F† +LANO AT ® yes CS 5 A4[2+] A4 44.1 n/a +LANO AA ® yes CS 5 n/a n/a 44.2† A†1 +IAG-10-AA n/a yes CS 4 AP7 AP7 45 A† F† +GAZ-67B n/a yes CS 2 n/a n/a 46 L† +Komsomolet n/a yes CS 2† n/a n/a 46.1† n/a +STZ-3 n/a yes cs 4 n/a n/a 46.2 n/a +STZ-5 n/a yes cs 7 n/a n/a 46.3 n/a +GAZ-MM n/a yes cs 6 n/a n/a 47 n/a +ZIS-5 n/a yes cs 7 n/a n/a 47 n/a +IAG-6 n/a yes cs 7 n/a n/a 47 n/a +NKL-6 n/a yes CS 2† n/a n/a 47.1† S†1 +NKL-16 n/a yes cs 2 n/a n/a 47.1† S†1 +NKL-26 n/a yes CS 2 n/a n/a 47.2† Q S†1 +RF-8-GAZ-98 n/a yes CS 3 n/a n/a 47.3† S†1 +Stuart III(a) n/a yes CS 4 C6 C6 48 N O LL +Lee(a) n/a yes CS 7 C4† s8† C4† s8† 49† B†1 N O LL +Sherman III(a) n/a yes CS 5 (brew up) WP6[J4+]† s8 WP6† s8 50† N O R†1 LL +Sherman III(L)(a) n/a yes CS 6 (brew up) WP7 s5 sM8 WP7 s5 sM8 50.1 N O R† LL +Matilda II(b) n/a yes CS 5 sD6 sD6 51† M†1 N LL +Valentine V(b) n/a yes CS 4 sM8 sM8 52.1 N LL +Valentine VIII(b) n/a yes CS 4 HE7 sD6 HE7 sD6 52.2 N LL +Churchill III(b) n/a yes CS 7 D6[J4]7[5]† HE7[F3]8[4+]† sD6[4+] sM8† D7† HE8† sD6 sM8† 53† N LL +M3A1 Scout Car(a) n/a yes CS 4 n/a n/a 54† N LL +Jeep GPA(a) n/a yes cs 2 n/a n/a 59 H† L†1 +DUKW(a) n/a yes cs 7 n/a n/a 60† n/a diff --git a/vasl_templates/webapp/tests/test_vo_reports.py b/vasl_templates/webapp/tests/test_vo_reports.py index ffeba74..0e0ccda 100644 --- a/vasl_templates/webapp/tests/test_vo_reports.py +++ b/vasl_templates/webapp/tests/test_vo_reports.py @@ -26,8 +26,18 @@ def test_vo_reports( webapp, webdriver ): if save_dir and os.path.isdir(save_dir): shutil.rmtree( save_dir ) + def fixup_capabilities( col, caption ): + """Convert capability HTML to something a bit more readable.""" + assert results[0][col] == caption + for i in range(1,len(results)): + results[i][col] = re.sub( + r"(.*?)", + lambda mo: "[{}]".format( mo.group(1) ), + results[i][col] + ) + # check each vehicle/ordnance report - for nat in ["german","russian"]: + for nat in ["german","russian","american"]: for vo_type in ["vehicles","ordnance"]: for year in range(1940,1945+1): @@ -43,13 +53,9 @@ def test_vo_reports( webapp, webdriver ): results[0].insert( len(results[0])-2, "(effective)" ) # fix up date-based capabilities - assert results[0][-4] == "Capabilities" - for i in range(1,len(results)): - results[i][-4] = re.sub( - r"(.*?)", - lambda mo: "[{}]".format( mo.group(1) ), - results[i][-4] - ) + fixup_capabilities( -4, "Capabilities" ) + fixup_capabilities( -3, "(effective)" ) + fixup_capabilities( -2, "#" ) # output the report print( "=== {}/{}/{} ===".format( vo_type, nat, year ), file=buf )