class TestGameState(unittest.TestCase): def setUp(self): self.gamestate = GameState() self.gamestate.reset() def test_get_ship(self): self.assertIsNone(self.gamestate.get_ship(None)) self.assertEqual(len(self.gamestate.actors), 0) ship_ref = self.gamestate.create_ship() another_ref = self.gamestate.get_ship(ship_ref.uuid) self.assertEqual(ship_ref, another_ref) def test_create_ship(self): self.assertEqual(len(self.gamestate.actors), 0) ship_ref = self.gamestate.create_ship() self.assertIsNotNone(ship_ref) self.assertEqual(len(self.gamestate.actors), 1) def test_clear(self): self.assertEqual(len(self.gamestate.actors), 0) self.gamestate.create_ship() self.assertEqual(len(self.gamestate.actors), 1) self.gamestate.reset() self.assertEqual(len(self.gamestate.actors), 0) def test_add_actor(self): thing1 = gameobjects.ActiveObject() thing2 = gameobjects.ActiveObject() self.gamestate._add_actor(thing1) self.gamestate._add_actor(thing2) self.assertEqual(len(self.gamestate.actors), 2) def test_save_and_load(self): thing1 = gameobjects.ActiveObject() thing2 = gameobjects.ActiveObject() self.gamestate._add_actor(thing1) self.gamestate._add_actor(thing2) self.gamestate.save_state('test_data') self.gamestate.load_state('test_data') self.assertEqual(len(self.gamestate.actors), 2) os.unlink('test_data') def test_load_sample(self): self.gamestate.load_state('sample_data.json') self.assertEqual(len(self.gamestate.actors), 2) self.assertIn('abc123', self.gamestate.actors) self.assertIn('xyz879', self.gamestate.actors) self.assertEqual(len(self.gamestate.planets), 4) def test_list_planets(self): self.gamestate.load_state('sample_data.json') self.assertEqual(len(self.gamestate.planets), 4) planet_list = self.gamestate.planet_list() self.assertIsNotNone(planet_list) self.assertEquals(len(planet_list), 4)