def test_signal_two_proxies(self): address = 'tcp://127.0.0.1:6009' s = Server(Example(), rep_endpoint=address) proxy1 = Proxy(address) proxy2 = Proxy(address) class MemMethod(object): def __init__(self_): self_.called = 0 def __call__(self_, value, old_value, others): self_.called += 1 fun = MemMethod() self.assertEqual(len(s.served_object.rw_prop_changed.slots), 0) proxy2.rw_prop_changed.connect(fun) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 1) proxy1.p = 28 proxy1._proxy_stop_server() proxy1._proxy_stop_me() proxy2._proxy_stop_me()
def test_server(self): s = Server(Example()) proxy = Proxy(s.rep_endpoint) self.assertEqual(s.served_object.simple_attribute, 12) self.assertEqual(proxy.simple_attribute, 12) proxy.simple_attribute = 24 self.assertEqual(s.served_object.simple_attribute, 24) self.assertEqual(proxy.simple_attribute, 24) self.assertRaises(AttributeError, getattr, proxy, 'not_an_attribute') self.assertEqual(s.served_object.dict_attribute[1], 2) self.assertEqual(proxy.dict_attribute[1], 2) self.assertRaises(KeyError, operator.getitem, proxy.dict_attribute, 2) proxy.dict_attribute[2] = 4 self.assertEqual(s.served_object.dict_attribute[2], 4) self.assertEqual(proxy.dict_attribute[2], 4) self.assertEqual(s.served_object.rw_prop, 42) self.assertEqual(proxy.rw_prop, 42) proxy.rw_prop = 21 self.assertEqual(s.served_object.rw_prop, 21) self.assertEqual(proxy.rw_prop, 21) self.assertEqual(proxy.fun_simple(), 46) self.assertEqual(proxy.fun_arg1(2), 4) self.assertEqual(proxy.fun_arg2(2, 3), 8) self.assertEqual(proxy.fun_arg2(y=2), 4) self.assertRaises(ValueError, proxy.fun_raise) proxy._proxy_stop_server() proxy._proxy_stop_me()
def start(self, mode): """ In CLIENT_MODE: Establish a connection with the server before sending a new message. In SERVER_MODE: Start listening to the incoming messages from the clients. :param mode: (int) Either CLIENT_MODE or SERVER_MODE. :return: None """ address = 'tcp://{}:{}'.format(self.ip, self.port) if mode == CLIENT_MODE: self.mode = mode self.logger.info( "Starting Scoreboard Client listening on {}:{} ...".format( self.ip, self.port)) self.instance = Proxy(address) elif mode == SERVER_MODE: self.mode = mode self.scoreboard = Scoreboard() server = Server(self, address) self.logger.info( "Starting Scoreboard Server listening on {}:{} ...".format( self.ip, self.port)) server.serve_forever()
def test_signal(self): address = 'tcp://127.0.0.1:6008' s = Server(Example(), rep_endpoint=address) proxy = Proxy(address) class MemMethod(object): def __init__(self_): self_.called = 0 def __call__(self_, value, old_value, others): self_.called += 1 fun1 = MemMethod() self.assertEqual(fun1.called, 0) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 0) proxy.rw_prop_changed.connect(fun1) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 1) proxy.rw_prop = 28 time.sleep(SLEEP_SECS) self.assertEqual(proxy.rw_prop, 28) self.assertEqual(fun1.called, 1) fun2 = MemMethod() self.assertEqual(fun2.called, 0) proxy.rw_prop_changed.connect(fun2) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 1) proxy.rw_prop = 29 time.sleep(SLEEP_SECS) self.assertEqual(proxy.rw_prop, 29) self.assertEqual(fun1.called, 2) self.assertEqual(fun2.called, 1) proxy.rw_prop_changed.disconnect(fun1) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 1) proxy.rw_prop = 30 self.assertEqual(fun1.called, 2) proxy.rw_prop_changed.disconnect(fun2) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 0) proxy.rw_prop_changed.connect(fun1) proxy.rw_prop_changed.connect(fun2) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 1) proxy.rw_prop_changed.disconnect(None) time.sleep(SLEEP_SECS) self.assertEqual(len(s.served_object.rw_prop_changed.slots), 0) proxy._proxy_stop_server() proxy._proxy_stop_me()
def get_mmvt_object(subject): mmvt = None pizco_log_fname = op.join(get_mmvt_dir(), subject, 'logs', 'pizco.log') waits_for_file(pizco_log_fname) with open(pizco_log_fname, 'r') as log: pizco_address = log.read() try: from pizco import Proxy devnull = open(os.devnull, 'w') with RedirectStdStreams(stdout=devnull, stderr=devnull): mmvt = Proxy(pizco_address) except: pass return mmvt
def test_future(self): s = Server(Example()) proxy = Proxy(s.rep_endpoint) fut = proxy.fut() self.assertEqual(fut.result(), 10) fut = proxy.fut_raise() self.assertIsInstance(fut.exception(), ValueError) fut = proxy.fut_raise() self.assertRaises(ValueError, fut.result) proxy._proxy_stop_me() s.stop()
def test_server_return_dict(self): s = ReturnDictsServer(Example()) proxy = Proxy(s.rep_endpoint) self.assertEqual(s.served_object.dict_attribute[1], 2) self.assertEqual(s.served_object.dict_attribute, {1: 2}) self.assertEqual(proxy.dict_attribute[1], 2) self.assertEqual(proxy.dict_attribute, {1: 2}) # This should not work as the dictionary is not remotely linked proxy.dict_attribute[2] = 4 self.assertEqual(s.served_object.dict_attribute, {1: 2}) proxy._proxy_stop_server() proxy._proxy_stop_me()
self.layout3 = QHBoxLayout() self.label3 = QLabel() self.label3.setMinimumSize(QSize(100, 0)) self.label3.setText('Color:') self.color = QLineEdit() self.color.setReadOnly(True) self.color.textChanged.connect(self.on_color_text_changed) self.color_box = QLabel() self.color_box.setText(' ') self.layout3.addWidget(self.label3) self.layout3.addWidget(self.color) self.layout3.addWidget(self.color_box) self.lights.stateChanged.connect(self.on_lights_on_changed) self.door_open.stateChanged.connect(self.on_door_open_changed) self.layout.addLayout(self.layout1) self.layout.addLayout(self.layout2) self.layout.addLayout(self.layout3) if __name__ == "__main__": proxy = Proxy('tcp://127.0.0.1:8000') app = QtGui.QApplication(sys.argv) main = ControlForm(proxy) main.show() if sys.platform.startswith('darwin'): main.raise_() sys.exit(app.exec_())
import os import os.path as op from pizco import Proxy os.chdir(os.environ['MMVT_CODE']) from src.mmvt_addon.scripts import run_mmvt from src.utils import utils subject, atlas = 'DC', 'laus250' run_mmvt.run(subject, atlas, run_in_background=False, debug=False) mmvt = Proxy('tcp://127.0.0.1:8001') meg_dir = utils.get_link_dir(utils.get_links_dir(), 'meg') stc_fname = op.join(meg_dir, subject, 'left-MNE-1-15-lh.stc') mmvt.plot_stc(stc_fname, 1270, threshold=0.1)