import unittest from MechFabrik import MechFabrik from MechFabrik.bauteile import InnerStructure, Gyroskope, AreaNames, Area, Cockpit, Reaktor, Mech class TestMechBau(unittest.TestCase): 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.assertIsInstance(mech.inner_structure, InnerStructure) self.assertIsInstance(mech.inner_structure.tonnage, float) self.assertEqual(2.0, 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) area_head = mech.inner_structure.areas.get(AreaNames.HEAD) self.assertIsInstance(area_head, Area) cockpit = area_head.cockpit self.assertIsInstance(cockpit, Cockpit) self.assertIsInstance(cockpit.tonnage, float) self.assertEqual(3.0, cockpit.tonnage) middle_torso = mech.inner_structure.areas.get(AreaNames.MIDDLE_TORSO) self.assertIsInstance(middle_torso, Area) reactor = middle_torso.reactor self.assertIsInstance(reactor, Reaktor) self.assertIsInstance(reactor.value, int) self.assertEqual(160, reactor.value) self.assertIsInstance(reactor.tonnage, float) self.assertEqual(6.0, reactor.tonnage) self.assertIsNone(middle_torso.parent) self.assertIsInstance(middle_torso.children, list) #right_torso = self._test_area(mech = mech, parent = middle_torso, index = AreaNames.RIGHT_TORSO) #left_torso = self._test_area(mech = mech, parent = middle_torso, index = AreaNames.LEFT_TORSO) #self.assertCountEqual([right_torso, left_torso], middle_torso.children) #self._test_limbs(mech = mech, parent = right_torso, index = AreaNames.RIGHT_ARM) #self._test_limbs(mech = mech, parent = right_torso, index = AreaNames.RIGHT_LEG) #self._test_limbs(mech = mech, parent = left_torso, index = AreaNames.LEFT_ARM) #self._test_limbs(mech = mech, parent = left_torso, index = AreaNames.LEFT_LEG) def _test_area(self, mech: Mech, parent: Area, index: AreaNames): side_torso = mech.inner_structure.areas.get(index) self.assertIsInstance(side_torso, Area) self.assertIsInstance(side_torso.parent, Area) self.assertEqual(parent, side_torso.parent) self.assertIsInstance(side_torso.children, list) self.assertCountEqual([0, 0], side_torso.children) return side_torso def _test_limbs(self, mech: Mech, parent: Area, index: AreaNames): limbs_area = mech.inner_structure.areas.get(index) self.assertIsInstance(limbs_area, Area) self.assertIsInstance(limbs_area.parent, Area) self.assertEqual(parent, limbs_area.parent) self.assertIsInstance(limbs_area.children, list) self.assertCountEqual([], limbs_area.children)