ya2 · news · projects · code · about

retrieve test coordinates
[pmachines.git] / ya2 / utils / functional.py
index a3459ca0fa27a672351cb2ba420faa4f9a17db03..1a886cb13155af3bf08270258cdc4fe887ca7b5a 100644 (file)
@@ -26,6 +26,7 @@ class RPCServer(SimpleXMLRPCServer):
         self.register_function(self.verify, 'verify')
         self.register_function(self.set_idx, 'set_idx')
         self.register_function(self.enforce_resolution, 'enforce_resolution')
+        self.register_function(self.get_pos, 'get_pos')
         self.register_function(self.destroy, 'destroy')
 
     def screenshot(self, arg):
@@ -43,6 +44,9 @@ class RPCServer(SimpleXMLRPCServer):
     def enforce_resolution(self, arg):
         taskMgr.doMethodLater(.01, self._callbacks[4], 'cb4', [arg])
 
+    def get_pos(self, arg):
+        return self._callbacks[5](arg)
+
     def destroy(self):
         self._BaseServer__shutdown_request = True
 
@@ -60,9 +64,10 @@ class RPCServerThread(Thread):
 
 class FunctionalTest(GameObject):
 
-    def __init__(self, ref):
+    def __init__(self, ref, pos_mgr):
         super().__init__()
-        RPCServerThread([self._do_screenshot, self._do_enforce_res, self.__verify, self._set_idx, self._do_enforce_resolution]).start()
+        self._pos_mgr = pos_mgr
+        RPCServerThread([self._do_screenshot, self._do_enforce_res, self.__verify, self._set_idx, self._do_enforce_resolution, self.__get_pos]).start()
         self.txt = OnscreenText('', fg=(1, 0, 0, 1), scale=.16)
         #self._path = ''
         #if self.eng.is_appimage:
@@ -88,6 +93,9 @@ class FunctionalTest(GameObject):
         info('creating dir: %s' % self._path)
         makedirs(self._path, exist_ok=True)
 
+    def __get_pos(self, tgt):
+        return self._pos_mgr.get(tgt)
+
     def _do_screenshot(self, name):
         self._fnames += [self._path + name]
         #time = datetime.datetime.now().strftime('%y%m%d%H%M%S')