diff --git a/tests/test_mech/__init__.py b/tests/test_mech/__init__.py index 5e89f07..ccead65 100644 --- a/tests/test_mech/__init__.py +++ b/tests/test_mech/__init__.py @@ -13,10 +13,10 @@ INNER_ARMOR = { AreaNames.LEFT_LEG: 4, AreaNames.RIGHT_LEG: 4, } - +## entspricht 64 Punkte → 4 t Panzerung OUTER_ARMOR = { ZoneNames.HEAD: 6, - ZoneNames.MIDDLE_TORSO_FRONT: 9, + ZoneNames.MIDDLE_TORSO_FRONT: 8, ZoneNames.MIDDLE_TORSO_REAR: 4, ZoneNames.LEFT_TORSO_FRONT: 8, ZoneNames.LEFT_TORSO_REAR: 3, @@ -43,15 +43,18 @@ NEXT_OUTER_ZONE = { } -class AbstractTestMechAmor(unittest.TestCase): +class AbstractTestMech(unittest.TestCase): def setUp(self): - fabrik = MechFabrik('Heuschrecke', 20.0, 8) + self.factory = MechFabrik('Heuschrecke', 20.0, 8) - fabrik.set_head_armor(OUTER_ARMOR[ZoneNames.HEAD]) - fabrik.set_middle_torso_armor(OUTER_ARMOR[ZoneNames.MIDDLE_TORSO_FRONT],OUTER_ARMOR[ZoneNames.MIDDLE_TORSO_REAR]) - fabrik.set_side_torso_armor(OUTER_ARMOR[ZoneNames.LEFT_TORSO_FRONT],OUTER_ARMOR[ZoneNames.LEFT_TORSO_REAR]) - fabrik.set_arm_armor(OUTER_ARMOR[ZoneNames.LEFT_ARM]) - fabrik.set_leg_armor(OUTER_ARMOR[ZoneNames.LEFT_LEG]) - self.mech = fabrik.auslieferung() +class AbstractTestMechAmor(AbstractTestMech): + + def setUp(self): + super(AbstractTestMechAmor, self).setUp() + self.factory.set_head_armor(OUTER_ARMOR[ZoneNames.HEAD]) + self.factory.set_middle_torso_armor(OUTER_ARMOR[ZoneNames.MIDDLE_TORSO_FRONT],OUTER_ARMOR[ZoneNames.MIDDLE_TORSO_REAR]) + self.factory.set_side_torso_armor(OUTER_ARMOR[ZoneNames.LEFT_TORSO_FRONT],OUTER_ARMOR[ZoneNames.LEFT_TORSO_REAR]) + self.factory.set_arm_armor(OUTER_ARMOR[ZoneNames.LEFT_ARM]) + self.factory.set_leg_armor(OUTER_ARMOR[ZoneNames.LEFT_LEG]) diff --git a/tests/test_mech_bau.py b/tests/test_mech_bau.py index e1fe1d5..d39aef0 100755 --- a/tests/test_mech_bau.py +++ b/tests/test_mech_bau.py @@ -1,48 +1,44 @@ -import unittest - from hangar.mech import Mech -from mech_factory import MechFabrik from mech_factory.component_storage import InnerStructure, AreaNames, Area, OuterAmor, Zone, ZoneNames from mech_factory.component_storage.items import Cockpit, Gyroskope, Item, ItemTypes, Reaktor -from test_mech import AbstractTestMechAmor, INNER_ARMOR, OUTER_ARMOR +from test_mech import AbstractTestMech, AbstractTestMechAmor, INNER_ARMOR, OUTER_ARMOR -class TestMechBau(unittest.TestCase): +class TestMechBau(AbstractTestMech): def test_simple(self): - fabrik = MechFabrik('Heuschrecke', 20.0, 8) - mech = fabrik.auslieferung() - self.assertIsInstance(mech, Mech) - self.assertIsInstance(mech.name, str) - self.assertEqual('Heuschrecke', mech.name) - self.assertIsInstance(mech.tonnage, float) - self.assertEqual(20.0, mech.tonnage) - self.assertIsInstance(mech.movement_rate, int) - self.assertEqual(8, mech.movement_rate) + self.mech = self.factory.auslieferung() + self.assertIsInstance(self.mech, Mech) + self.assertIsInstance(self.mech.name, str) + self.assertEqual('Heuschrecke', self.mech.name) + self.assertIsInstance(self.mech.tonnage, float) + self.assertEqual(20.0, self.mech.tonnage) + self.assertIsInstance(self.mech.movement_rate, int) + self.assertEqual(8, self.mech.movement_rate) for ara_name in AreaNames: - area = mech.inner_structure.areas.get(ara_name) + area = self.mech.inner_structure.areas.get(ara_name) should_amor = INNER_ARMOR[ara_name] self.assertIsInstance(area, Zone) self.assertIsInstance(area, Area) self.assertEqual(should_amor, area.armor) for zone_name in ZoneNames: - zone = mech.inner_structure.zones.get(zone_name) + zone = self.mech.inner_structure.zones.get(zone_name) self.assertIsInstance(zone, Zone) self.assertIsInstance(zone, OuterAmor) self.assertEqual(0, zone.armor) - self.assertIsInstance(mech.inner_structure, InnerStructure) - self.assertIsInstance(mech.inner_structure.tonnage, float) - self.assertEqual(2.0, mech.inner_structure.tonnage) + self.assertIsInstance(self.mech.inner_structure, InnerStructure) + self.assertIsInstance(self.mech.inner_structure.tonnage, float) + self.assertEqual(2.0, self.mech.inner_structure.tonnage) - self.assertIsInstance(mech.inner_structure.gyroskope, Gyroskope) - self.assertIsInstance(mech.inner_structure.gyroskope.tonnage, float) - self.assertEqual(2.0, mech.inner_structure.gyroskope.tonnage) - self.assertIsInstance(mech.inner_structure.areas, dict) + self.assertIsInstance(self.mech.inner_structure.gyroskope, Gyroskope) + self.assertIsInstance(self.mech.inner_structure.gyroskope.tonnage, float) + self.assertEqual(2.0, self.mech.inner_structure.gyroskope.tonnage) + self.assertIsInstance(self.mech.inner_structure.areas, dict) - area_head = mech.inner_structure.areas.get(AreaNames.HEAD) + area_head = self.mech.inner_structure.areas.get(AreaNames.HEAD) self.assertIsInstance(area_head, Area) cockpit = area_head.cockpit self.assertIsInstance(cockpit, Cockpit) @@ -50,26 +46,26 @@ class TestMechBau(unittest.TestCase): self.assertEqual(3.0, cockpit.tonnage) self._test_for_head_items(area_head) - middle_torso = self._test_middle_torso(mech) - right_torso = self._test_areas(mech=mech, parent=middle_torso, index=AreaNames.RIGHT_TORSO, children=2) - left_torso = self._test_areas(mech=mech, parent=middle_torso, index=AreaNames.LEFT_TORSO, children=2) + middle_torso = self._test_middle_torso() + right_torso = self._test_areas(parent=middle_torso, index=AreaNames.RIGHT_TORSO, children=2) + left_torso = self._test_areas(parent=middle_torso, index=AreaNames.LEFT_TORSO, children=2) self.assertIsInstance(area_head.parent, Area) self.assertEqual(middle_torso, area_head.parent) self.assertCountEqual([right_torso, left_torso], middle_torso.children) - right_arm = self._test_areas(mech=mech, parent=right_torso, index=AreaNames.RIGHT_ARM, children=0) - right_leg = self._test_areas(mech=mech, parent=right_torso, index=AreaNames.RIGHT_LEG, children=0) + right_arm = self._test_areas(parent=right_torso, index=AreaNames.RIGHT_ARM, children=0) + right_leg = self._test_areas(parent=right_torso, index=AreaNames.RIGHT_LEG, children=0) self.assertCountEqual([right_arm, right_leg], right_torso.children) self._test_for_arm_items(right_arm) self._test_for_leg_items(right_leg) - left_arm = self._test_areas(mech=mech, parent=left_torso, index=AreaNames.LEFT_ARM, children=0) - left_leg = self._test_areas(mech=mech, parent=left_torso, index=AreaNames.LEFT_LEG, children=0) + left_arm = self._test_areas(parent=left_torso, index=AreaNames.LEFT_ARM, children=0) + left_leg = self._test_areas(parent=left_torso, index=AreaNames.LEFT_LEG, children=0) self.assertCountEqual([left_arm, left_leg], left_torso.children) self._test_for_arm_items(left_arm) self._test_for_leg_items(left_leg) - def _test_middle_torso(self, mech) -> Area: - middle_torso = mech.inner_structure.areas.get(AreaNames.MIDDLE_TORSO) + def _test_middle_torso(self) -> Area: + middle_torso = self.mech.inner_structure.areas.get(AreaNames.MIDDLE_TORSO) self.assertIsInstance(middle_torso, Area) reactor = middle_torso.reactor self.assertIsInstance(reactor, Reaktor) @@ -81,8 +77,8 @@ class TestMechBau(unittest.TestCase): self.assertIsInstance(middle_torso.children, list) return middle_torso - def _test_areas(self, mech: Mech, parent: Area, index: AreaNames, children: int) -> Area: - area = mech.inner_structure.areas.get(index) + def _test_areas(self, parent: Area, index: AreaNames, children: int) -> Area: + area = self.mech.inner_structure.areas.get(index) self.assertIsInstance(area, Area) self.assertIsInstance(area.parent, Area) self.assertEqual(parent, area.parent) @@ -159,7 +155,9 @@ class TestMechBau(unittest.TestCase): class TestMechAmor(AbstractTestMechAmor): def test_build(self): + mech = self.factory.auslieferung() + for zone_name in ZoneNames: - zone = self.mech.inner_structure.zones.get(zone_name) + zone = mech.inner_structure.zones.get(zone_name) should_outer_armor = OUTER_ARMOR[zone_name] self.assertEqual(should_outer_armor, zone.armor) diff --git a/tests/test_mech_process.py b/tests/test_mech_process.py index 92a61a1..cfb4d3e 100755 --- a/tests/test_mech_process.py +++ b/tests/test_mech_process.py @@ -7,6 +7,7 @@ from mech_factory.component_storage import Area, AreaStatus, OuterAmor, ZoneName class TestMechAmor(AbstractTestMechAmor): def test_process(self): + self.mech = self.factory.auslieferung() for zone_name in ZoneNames: with self.subTest(msg=zone_name.value): zone = self.mech.inner_structure.zones.get(zone_name) @@ -31,6 +32,7 @@ class TestMechAmor(AbstractTestMechAmor): self.assertEqual(area, event.zone.parent) def test_critical_process(self): + self.mech = self.factory.auslieferung() for zone_name in ZoneNames: with self.subTest(msg=zone_name.value): zone = self.mech.inner_structure.zones.get(zone_name)