From ec7f8f57101b3902ff8afc91ce3e3f68109bd59a Mon Sep 17 00:00:00 2001 From: Khopa Date: Sun, 25 Oct 2020 14:38:10 +0100 Subject: [PATCH] Completed basic faction parameters loading test. --- tests/resources/invalid_faction.json | 0 tests/resources/invalid_faction_country.json | 86 ++++++++++++++++++++ tests/resources/valid_faction.json | 2 +- tests/test_factions.py | 60 +++++++++++++- 4 files changed, 146 insertions(+), 2 deletions(-) delete mode 100644 tests/resources/invalid_faction.json create mode 100644 tests/resources/invalid_faction_country.json diff --git a/tests/resources/invalid_faction.json b/tests/resources/invalid_faction.json deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/resources/invalid_faction_country.json b/tests/resources/invalid_faction_country.json new file mode 100644 index 00000000..84579ab0 --- /dev/null +++ b/tests/resources/invalid_faction_country.json @@ -0,0 +1,86 @@ +{ + "country": "C", + "name": "USA 2005", + "authors": "Khopa", + "description": "This is a test description", + "aircrafts": [ + "F_15C", + "F_15E", + "F_14B", + "FA_18C_hornet", + "F_16C_50", + "A_10A", + "AV8BNA", + "UH_1H", + "AH_64A", + "B_52H", + "B_1B", + "F_117A" + ], + "awacs": [ + "E_3A" + ], + "tankers": [ + "KC_135", + "KC130" + ], + "frontline_units": [ + "MBT_M1A2_Abrams", + "ATGM_M1134_Stryker", + "APC_M1126_Stryker_ICV", + "IFV_M2A2_Bradley", + "IFV_LAV_25", + "APC_M1043_HMMWV_Armament", + "ATGM_M1045_HMMWV_TOW" + ], + "artillery_units": [ + "MLRS_M270", + "SPH_M109_Paladin" + ], + "logistics_units": [ + "Transport_M818" + ], + "infantry_units": [ + "Infantry_M4", + "Soldier_M249" + ], + "shorads": [ + "AvengerGenerator" + ], + "sams": [ + "HawkGenerator" + ], + "aircraft_carrier": [ + "CVN_74_John_C__Stennis" + ], + "helicopter_carrier": [ + "LHA_1_Tarawa" + ], + "destroyers": [ + "Oliver_Hazzard_Perry_class", + "USS_Arleigh_Burke_IIa" + ], + "cruisers": [ + "Ticonderoga_class" + ], + "requirements": {"mod": "Some mod is required"}, + "carrier_names": [ + "CVN-71 Theodore Roosevelt", + "CVN-72 Abraham Lincoln", + "CVN-73 George Washington", + "CVN-74 John C. Stennis" + ], + "helicopter_carrier_names": [ + "LHA-1 Tarawa", + "LHA-2 Saipan", + "LHA-3 Belleau Wood", + "LHA-4 Nassau", + "LHA-5 Peleliu" + ], + "navy_generators": [ + "OliverHazardPerryGroupGenerator", + "ArleighBurkeGroupGenerator" + ], + "has_jtac": true, + "jtac_unit": "MQ_9_Reaper" +} \ No newline at end of file diff --git a/tests/resources/valid_faction.json b/tests/resources/valid_faction.json index b33297bf..7ed6eca6 100644 --- a/tests/resources/valid_faction.json +++ b/tests/resources/valid_faction.json @@ -63,7 +63,7 @@ "cruisers": [ "Ticonderoga_class" ], - "requirements": {}, + "requirements": {"mod": "Some mod is required"}, "carrier_names": [ "CVN-71 Theodore Roosevelt", "CVN-72 Abraham Lincoln", diff --git a/tests/test_factions.py b/tests/test_factions.py index fd141181..faeb2385 100644 --- a/tests/test_factions.py +++ b/tests/test_factions.py @@ -2,7 +2,11 @@ import json import unittest from dcs.helicopters import UH_1H, AH_64A -from dcs.planes import F_15C, F_15E, F_14B, FA_18C_hornet, F_16C_50, A_10A, AV8BNA, B_52H, B_1B, F_117A +from dcs.planes import F_15C, F_15E, F_14B, FA_18C_hornet, F_16C_50, A_10A, AV8BNA, B_52H, B_1B, F_117A, MQ_9_Reaper, \ + E_3A, KC130, KC_135 +from dcs.ships import CVN_74_John_C__Stennis, LHA_1_Tarawa, Oliver_Hazzard_Perry_class, USS_Arleigh_Burke_IIa, \ + Ticonderoga_class +from dcs.vehicles import Armor, Unarmed, Infantry, Artillery, AirDefence from game.factions.faction import Faction @@ -33,3 +37,57 @@ class TestFactionLoader(unittest.TestCase): self.assertIn(B_52H, faction.aircrafts) self.assertIn(B_1B, faction.aircrafts) self.assertIn(F_117A, faction.aircrafts) + + self.assertEqual(len(faction.awacs), 1) + self.assertIn(E_3A, faction.awacs) + + self.assertEqual(len(faction.tankers), 2) + self.assertIn(KC_135, faction.tankers) + self.assertIn(KC130, faction.tankers) + + self.assertTrue(faction.has_jtac) + self.assertEqual(faction.jtac_unit, MQ_9_Reaper) + + self.assertIn(Armor.MBT_M1A2_Abrams, faction.frontline_units) + self.assertIn(Armor.ATGM_M1134_Stryker, faction.frontline_units) + self.assertIn(Armor.APC_M1126_Stryker_ICV, faction.frontline_units) + self.assertIn(Armor.IFV_M2A2_Bradley, faction.frontline_units) + self.assertIn(Armor.IFV_LAV_25, faction.frontline_units) + self.assertIn(Armor.APC_M1043_HMMWV_Armament, faction.frontline_units) + self.assertIn(Armor.ATGM_M1045_HMMWV_TOW, faction.frontline_units) + + self.assertIn(Artillery.MLRS_M270, faction.artillery_units) + self.assertIn(Artillery.SPH_M109_Paladin, faction.artillery_units) + + self.assertIn(Unarmed.Transport_M818, faction.logistics_units) + + self.assertIn(Infantry.Infantry_M4, faction.infantry_units) + self.assertIn(Infantry.Soldier_M249, faction.infantry_units) + + self.assertIn("AvengerGenerator", faction.shorads) + + self.assertIn("HawkGenerator", faction.sams) + + self.assertIn(CVN_74_John_C__Stennis, faction.aircraft_carrier) + self.assertIn(LHA_1_Tarawa, faction.helicopter_carrier) + self.assertIn(Oliver_Hazzard_Perry_class, faction.destroyers) + self.assertIn(USS_Arleigh_Burke_IIa, faction.destroyers) + self.assertIn(Ticonderoga_class, faction.cruisers) + + self.assertIn("mod", faction.requirements.keys()) + self.assertIn("Some mod is required", faction.requirements.values()) + + self.assertEqual(4, len(faction.carrier_names)) + self.assertEqual(5, len(faction.helicopter_carrier_names)) + + self.assertIn("OliverHazardPerryGroupGenerator", faction.navy_generators) + self.assertIn("ArleighBurkeGroupGenerator", faction.navy_generators) + + def test_load_valid_faction_with_invalid_country(self): + + with open("./resources/invalid_faction_country.json", 'r') as data: + try: + Faction.from_json(json.load(data)) + self.fail("Should have thrown assertion error") + except AssertionError as e: + pass