tests: nutze die zentrale Erstellung eines Mech
This commit is contained in:
+13
-10
@@ -13,10 +13,10 @@ INNER_ARMOR = {
|
|||||||
AreaNames.LEFT_LEG: 4,
|
AreaNames.LEFT_LEG: 4,
|
||||||
AreaNames.RIGHT_LEG: 4,
|
AreaNames.RIGHT_LEG: 4,
|
||||||
}
|
}
|
||||||
|
## entspricht 64 Punkte → 4 t Panzerung
|
||||||
OUTER_ARMOR = {
|
OUTER_ARMOR = {
|
||||||
ZoneNames.HEAD: 6,
|
ZoneNames.HEAD: 6,
|
||||||
ZoneNames.MIDDLE_TORSO_FRONT: 9,
|
ZoneNames.MIDDLE_TORSO_FRONT: 8,
|
||||||
ZoneNames.MIDDLE_TORSO_REAR: 4,
|
ZoneNames.MIDDLE_TORSO_REAR: 4,
|
||||||
ZoneNames.LEFT_TORSO_FRONT: 8,
|
ZoneNames.LEFT_TORSO_FRONT: 8,
|
||||||
ZoneNames.LEFT_TORSO_REAR: 3,
|
ZoneNames.LEFT_TORSO_REAR: 3,
|
||||||
@@ -43,15 +43,18 @@ NEXT_OUTER_ZONE = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class AbstractTestMechAmor(unittest.TestCase):
|
class AbstractTestMech(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
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])
|
||||||
|
|||||||
+34
-36
@@ -1,48 +1,44 @@
|
|||||||
import unittest
|
|
||||||
|
|
||||||
from hangar.mech import Mech
|
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 import InnerStructure, AreaNames, Area, OuterAmor, Zone, ZoneNames
|
||||||
from mech_factory.component_storage.items import Cockpit, Gyroskope, Item, ItemTypes, Reaktor
|
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):
|
def test_simple(self):
|
||||||
fabrik = MechFabrik('Heuschrecke', 20.0, 8)
|
self.mech = self.factory.auslieferung()
|
||||||
mech = fabrik.auslieferung()
|
self.assertIsInstance(self.mech, Mech)
|
||||||
self.assertIsInstance(mech, Mech)
|
self.assertIsInstance(self.mech.name, str)
|
||||||
self.assertIsInstance(mech.name, str)
|
self.assertEqual('Heuschrecke', self.mech.name)
|
||||||
self.assertEqual('Heuschrecke', mech.name)
|
self.assertIsInstance(self.mech.tonnage, float)
|
||||||
self.assertIsInstance(mech.tonnage, float)
|
self.assertEqual(20.0, self.mech.tonnage)
|
||||||
self.assertEqual(20.0, mech.tonnage)
|
self.assertIsInstance(self.mech.movement_rate, int)
|
||||||
self.assertIsInstance(mech.movement_rate, int)
|
self.assertEqual(8, self.mech.movement_rate)
|
||||||
self.assertEqual(8, mech.movement_rate)
|
|
||||||
|
|
||||||
for ara_name in AreaNames:
|
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]
|
should_amor = INNER_ARMOR[ara_name]
|
||||||
self.assertIsInstance(area, Zone)
|
self.assertIsInstance(area, Zone)
|
||||||
self.assertIsInstance(area, Area)
|
self.assertIsInstance(area, Area)
|
||||||
self.assertEqual(should_amor, area.armor)
|
self.assertEqual(should_amor, area.armor)
|
||||||
|
|
||||||
for zone_name in ZoneNames:
|
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, Zone)
|
||||||
self.assertIsInstance(zone, OuterAmor)
|
self.assertIsInstance(zone, OuterAmor)
|
||||||
self.assertEqual(0, zone.armor)
|
self.assertEqual(0, zone.armor)
|
||||||
|
|
||||||
self.assertIsInstance(mech.inner_structure, InnerStructure)
|
self.assertIsInstance(self.mech.inner_structure, InnerStructure)
|
||||||
self.assertIsInstance(mech.inner_structure.tonnage, float)
|
self.assertIsInstance(self.mech.inner_structure.tonnage, float)
|
||||||
self.assertEqual(2.0, mech.inner_structure.tonnage)
|
self.assertEqual(2.0, self.mech.inner_structure.tonnage)
|
||||||
|
|
||||||
self.assertIsInstance(mech.inner_structure.gyroskope, Gyroskope)
|
self.assertIsInstance(self.mech.inner_structure.gyroskope, Gyroskope)
|
||||||
self.assertIsInstance(mech.inner_structure.gyroskope.tonnage, float)
|
self.assertIsInstance(self.mech.inner_structure.gyroskope.tonnage, float)
|
||||||
self.assertEqual(2.0, mech.inner_structure.gyroskope.tonnage)
|
self.assertEqual(2.0, self.mech.inner_structure.gyroskope.tonnage)
|
||||||
self.assertIsInstance(mech.inner_structure.areas, dict)
|
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)
|
self.assertIsInstance(area_head, Area)
|
||||||
cockpit = area_head.cockpit
|
cockpit = area_head.cockpit
|
||||||
self.assertIsInstance(cockpit, Cockpit)
|
self.assertIsInstance(cockpit, Cockpit)
|
||||||
@@ -50,26 +46,26 @@ class TestMechBau(unittest.TestCase):
|
|||||||
self.assertEqual(3.0, cockpit.tonnage)
|
self.assertEqual(3.0, cockpit.tonnage)
|
||||||
self._test_for_head_items(area_head)
|
self._test_for_head_items(area_head)
|
||||||
|
|
||||||
middle_torso = self._test_middle_torso(mech)
|
middle_torso = self._test_middle_torso()
|
||||||
right_torso = self._test_areas(mech=mech, parent=middle_torso, index=AreaNames.RIGHT_TORSO, children=2)
|
right_torso = self._test_areas(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)
|
left_torso = self._test_areas(parent=middle_torso, index=AreaNames.LEFT_TORSO, children=2)
|
||||||
self.assertIsInstance(area_head.parent, Area)
|
self.assertIsInstance(area_head.parent, Area)
|
||||||
self.assertEqual(middle_torso, area_head.parent)
|
self.assertEqual(middle_torso, area_head.parent)
|
||||||
self.assertCountEqual([right_torso, left_torso], middle_torso.children)
|
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_arm = self._test_areas(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_leg = self._test_areas(parent=right_torso, index=AreaNames.RIGHT_LEG, children=0)
|
||||||
self.assertCountEqual([right_arm, right_leg], right_torso.children)
|
self.assertCountEqual([right_arm, right_leg], right_torso.children)
|
||||||
self._test_for_arm_items(right_arm)
|
self._test_for_arm_items(right_arm)
|
||||||
self._test_for_leg_items(right_leg)
|
self._test_for_leg_items(right_leg)
|
||||||
left_arm = self._test_areas(mech=mech, parent=left_torso, index=AreaNames.LEFT_ARM, children=0)
|
left_arm = self._test_areas(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_leg = self._test_areas(parent=left_torso, index=AreaNames.LEFT_LEG, children=0)
|
||||||
self.assertCountEqual([left_arm, left_leg], left_torso.children)
|
self.assertCountEqual([left_arm, left_leg], left_torso.children)
|
||||||
self._test_for_arm_items(left_arm)
|
self._test_for_arm_items(left_arm)
|
||||||
self._test_for_leg_items(left_leg)
|
self._test_for_leg_items(left_leg)
|
||||||
|
|
||||||
def _test_middle_torso(self, mech) -> Area:
|
def _test_middle_torso(self) -> Area:
|
||||||
middle_torso = mech.inner_structure.areas.get(AreaNames.MIDDLE_TORSO)
|
middle_torso = self.mech.inner_structure.areas.get(AreaNames.MIDDLE_TORSO)
|
||||||
self.assertIsInstance(middle_torso, Area)
|
self.assertIsInstance(middle_torso, Area)
|
||||||
reactor = middle_torso.reactor
|
reactor = middle_torso.reactor
|
||||||
self.assertIsInstance(reactor, Reaktor)
|
self.assertIsInstance(reactor, Reaktor)
|
||||||
@@ -81,8 +77,8 @@ class TestMechBau(unittest.TestCase):
|
|||||||
self.assertIsInstance(middle_torso.children, list)
|
self.assertIsInstance(middle_torso.children, list)
|
||||||
return middle_torso
|
return middle_torso
|
||||||
|
|
||||||
def _test_areas(self, mech: Mech, parent: Area, index: AreaNames, children: int) -> Area:
|
def _test_areas(self, parent: Area, index: AreaNames, children: int) -> Area:
|
||||||
area = mech.inner_structure.areas.get(index)
|
area = self.mech.inner_structure.areas.get(index)
|
||||||
self.assertIsInstance(area, Area)
|
self.assertIsInstance(area, Area)
|
||||||
self.assertIsInstance(area.parent, Area)
|
self.assertIsInstance(area.parent, Area)
|
||||||
self.assertEqual(parent, area.parent)
|
self.assertEqual(parent, area.parent)
|
||||||
@@ -159,7 +155,9 @@ class TestMechBau(unittest.TestCase):
|
|||||||
class TestMechAmor(AbstractTestMechAmor):
|
class TestMechAmor(AbstractTestMechAmor):
|
||||||
|
|
||||||
def test_build(self):
|
def test_build(self):
|
||||||
|
mech = self.factory.auslieferung()
|
||||||
|
|
||||||
for zone_name in ZoneNames:
|
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]
|
should_outer_armor = OUTER_ARMOR[zone_name]
|
||||||
self.assertEqual(should_outer_armor, zone.armor)
|
self.assertEqual(should_outer_armor, zone.armor)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ from mech_factory.component_storage import Area, AreaStatus, OuterAmor, ZoneName
|
|||||||
class TestMechAmor(AbstractTestMechAmor):
|
class TestMechAmor(AbstractTestMechAmor):
|
||||||
|
|
||||||
def test_process(self):
|
def test_process(self):
|
||||||
|
self.mech = self.factory.auslieferung()
|
||||||
for zone_name in ZoneNames:
|
for zone_name in ZoneNames:
|
||||||
with self.subTest(msg=zone_name.value):
|
with self.subTest(msg=zone_name.value):
|
||||||
zone = self.mech.inner_structure.zones.get(zone_name)
|
zone = self.mech.inner_structure.zones.get(zone_name)
|
||||||
@@ -31,6 +32,7 @@ class TestMechAmor(AbstractTestMechAmor):
|
|||||||
self.assertEqual(area, event.zone.parent)
|
self.assertEqual(area, event.zone.parent)
|
||||||
|
|
||||||
def test_critical_process(self):
|
def test_critical_process(self):
|
||||||
|
self.mech = self.factory.auslieferung()
|
||||||
for zone_name in ZoneNames:
|
for zone_name in ZoneNames:
|
||||||
with self.subTest(msg=zone_name.value):
|
with self.subTest(msg=zone_name.value):
|
||||||
zone = self.mech.inner_structure.zones.get(zone_name)
|
zone = self.mech.inner_structure.zones.get(zone_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user