def test_serialization(self): basedir = util.game_path('test_data_dir') s = serializer.Serializer(basedir=basedir) folder = s.folder_name w = World(s, block_seed=0) b = w.get(0,0) p = b.set_entity(entities.Player, 3, 7) p_x, p_y = p.x, p.y for _ in range(2): w.process() self.assertEqual(w.turn, 2) turn = w.turn self.assertFalse(s.has_settings()) s.save_game(w, p) self.assertTrue(s.has_settings()) s.close_connection() del w del b del p del s s = serializer.Serializer(basedir=basedir, folder=folder) s.load_settings() w = s.init_world() self.assertEqual(turn, w.turn) p = s.init_player(w) self.assertEqual((p_x, p_y), (p.x, p.y)) b = w[(0, 0)] c = util.count_entities(b) self.assertEqual(c[entities.Player], 1) shutil.rmtree(s.serial_path) shutil.rmtree(basedir)
def test_save_block(benchmark): basedir=util.game_path('test_data_dir') s = serializer.Serializer(basedir=basedir) folder = s.folder_name w = World(s, block_seed=0) b = w.get(0,0) p = b.set_entity(entities.Player, 3, 7) p_x, p_y = p.x, p.y turn = w.turn benchmark.pedantic(s.save_block, args=(b,), rounds=1) shutil.rmtree(s.serial_path) shutil.rmtree(basedir)
def test_no_folder(self): basedir = util.game_path('test_data_dir') with self.assertRaises(RuntimeError): s = serializer.Serializer(basedir=basedir, folder="foo")