Ejemplo n.º 1
0
    def __init__(self):
        self.log = get_logger("PubSubNode")
        self.log.info("-- PubSubNode Init-ing --")

        self.reactor = ReactorInterface(self)
        self.reactor.execute(Command.ADD_SUB, url=URL, callback='do_something')
        self.reactor.execute(Command.ADD_PUB, url=URL)

        self.reactor.notify_ready()
Ejemplo n.º 2
0
    def __init__(self, log_color=None):
        if log_color:
            self.log = get_logger("Node", bg_color=log_color)
        else:
            self.log = get_logger("Node")

        self.log.info("A Node has appeared")
        self.reactor = ReactorInterface(router=self)
        self.reactor.notify_ready()
Ejemplo n.º 3
0
    def __init__(self):
        self.log = get_logger("SlowInitNode")
        self.log.info("-- Test Node Init-ing --")
        self.reactor = ReactorInterface(self)

        self.reactor.execute(Command.ADD_SUB, url=URL, callback='do_something_else')

        self.log.critical("Starting very slow init")
        time.sleep(6)
        self.log.critical("Done with very flow init")
        self.reactor.notify_ready()
Ejemplo n.º 4
0
    def build_obj(cls, sk, name='') -> tuple:
        loop = asyncio.get_event_loop()
        asyncio.set_event_loop(loop)

        mock_sm = MagicMock(spec=StateMachine)
        mock_sm.__name__ = name
        router = MagicMock()

        reactor = ReactorInterface(router=router, loop=loop, signing_key=sk)
        composer = Composer(interface=reactor, signing_key=sk)

        return composer, loop, [reactor._recv_messages()]
Ejemplo n.º 5
0
class Node:
    def __init__(self, log_color=None):
        if log_color:
            self.log = get_logger("Node", bg_color=log_color)
        else:
            self.log = get_logger("Node")

        self.log.info("A Node has appeared")
        self.reactor = ReactorInterface(router=self)
        self.reactor.notify_ready()

    def handle_msg(self, data):
        self.log.info("Handling Msg: {}".format(data))
Ejemplo n.º 6
0
    def build_obj(cls) -> tuple:
        mock_parent = MagicMock()
        loop = asyncio.new_event_loop()
        asyncio.set_event_loop(loop)

        reactor = ReactorInterface(mock_parent, loop=loop)

        return reactor, loop
Ejemplo n.º 7
0
    def _build_node(loop, signing_key, ip, node_cls, name) -> NodeBase:

        node = node_cls(signing_key=signing_key, ip=ip, loop=loop, name=name)
        router = Router(statemachine=node, name=name)
        interface = ReactorInterface(router=router, loop=loop, signing_key=signing_key, name=name)
        composer = Composer(interface=interface, signing_key=signing_key, name=name)

        node.composer = composer

        return node
Ejemplo n.º 8
0
 def __init__(self, *args, **kwargs):
     self.log = get_logger("BaseNode")
     self.log.info("-- BaseNode Initiating --")
     self.port = int(os.getenv('PORT', 31337))
     self.host = os.getenv('HOST_IP', '127.0.0.1')
     self.loop = asyncio.get_event_loop()
     self.wallet = ED25519Wallet()
     self.router = Router(statemachine=self)
     self.reactor = ReactorInterface(self.router, self.loop, self.wallet.s)
     self.composer = Composer(self.reactor, self.wallet.s)
Ejemplo n.º 9
0
        def config_router(reactor: ReactorInterface):
            def reply_effect(*args, **kwargs):
                # log = get_logger("ASSERT ROUTER SIDE EFFECT WTIH")
                # log.critical("\n\n sending reply command... \n\n")
                reactor.send_cmd(reply)
                dealer.send_cmd(reply)

            reactor._run_callback = MagicMock()
            reactor._run_callback.side_effect = reply_effect
            return reactor
Ejemplo n.º 10
0
class SlowInitNode:
    def __init__(self):
        self.log = get_logger("SlowInitNode")
        self.log.info("-- Test Node Init-ing --")
        self.reactor = ReactorInterface(self)

        self.reactor.execute(Command.ADD_SUB, url=URL, callback='do_something_else')

        self.log.critical("Starting very slow init")
        time.sleep(6)
        self.log.critical("Done with very flow init")
        self.reactor.notify_ready()

    def do_something_slow(self, data):
        self.log.critical("Starting something slow with data: {}".format(data))
        time.sleep(2)
        self.log.critical("Done with something slow for data: {}".format(data))

    def do_something_else(self, data):
        self.log.info("do_something_ELSE with data: {}".format(data))
Ejemplo n.º 11
0
    def __init__(self, loop=None):
        self.log = get_logger("GOD")

        self.loop = loop or asyncio.new_event_loop()
        asyncio.set_event_loop(self.loop)

        mock_router = MagicMock()
        self.interface = ReactorInterface(router=mock_router, loop=self.loop, verifying_key=God._DEFAULT_VK)

        # a dict of composer_sk to composer object
        self.composers = {}
Ejemplo n.º 12
0
class Replier:
    def __init__(self):
        self.reactor = ReactorInterface(self)
        self.log = get_logger("Replier")
        self.reactor.add_router(url=URL, callback='handle_request')
        self.reactor.notify_ready()

    def handle_request(self, req, id):
        self.log.critical("Got request: {} with sender id: {}".format(req, id))
        self.reactor.reply(url=URL, id=id, data=b'heres your reply my guy')
Ejemplo n.º 13
0
class PubSubNode:
    def __init__(self):
        self.log = get_logger("PubSubNode")
        self.log.info("-- PubSubNode Init-ing --")

        self.reactor = ReactorInterface(self)
        self.reactor.execute(Command.ADD_SUB, url=URL, callback='do_something')
        self.reactor.execute(Command.ADD_PUB, url=URL)

        self.reactor.notify_ready()

    def do_something(self, data):
        self.log.debug("Doing something with data: {}".format(data))
Ejemplo n.º 14
0
    def _start_test(self, rdy_sig_q, cmd_q):
        async def recv_cmd():
            while True:
                log.critical("waiting for cmd")
                cmd = await cmd_q.coro_get()
                func, args, kwargs = cmd
                log.critical("got cmd: {}".format(cmd))
                log.critical("cmd name: {}\nkwargs: {}".format(func, kwargs))

                getattr(reactor, func)(*args, **kwargs)

        async def check_assertions():
            self.log.debug("Starting assertion checks")
            timeout = TEST_TIMEOUT
            while timeout > 0:
                try:
                    self.assert_fn(reactor)
                    self.log.critical("Assertions successful with {} left!".format(timeout))
                    rdy_sig_q.put("BIG TIME PLAYERS MAKE BIG TIME PLAYS")
                    break
                except Exception as e:
                    self.log.warning("assertion failed: {}".format(e))

                await asyncio.sleep(TEST_CHECK_FREQ)
                timeout -= TEST_CHECK_FREQ

        log = get_logger("TesterTarget")
        loop = asyncio.new_event_loop()
        mock_parent = MagicMock()

        log.debug("creating reactor")
        reactor = ReactorInterface(mock_parent, loop)

        log.info("setting mock config")
        reactor = self.config_fn(reactor)

        log.critical("mock property: {}".format(reactor._run_callback))

        log.debug("sending ready sig to parent")
        rdy_sig_q.put('ready')

        log.debug("starting TestableProcess event loop")
        loop.run_until_complete(asyncio.gather(recv_cmd(), check_assertions()))
Ejemplo n.º 15
0
class Requester:
    _ID = 'ASS'

    def __init__(self):
        self.reactor = ReactorInterface(self)
        self.log = get_logger("Requester")
        self.reactor.add_dealer(url=URL, callback='handle_reply', id=self._ID)
        self.reactor.notify_ready()

    def handle_reply(self, rep):
        self.log.critical("Got reply: {}".format(rep))

    def send_req(self, req_str):
        self.reactor.request(url=URL, data=req_str.encode())
Ejemplo n.º 16
0
 def __init__(self, url):
     self.url = url
     self.reactor = ReactorInterface(self)
     self.log = get_logger(type(self).__name__)
     super().__init__()
Ejemplo n.º 17
0
 def config_dealer(reactor: ReactorInterface):
     reactor._run_callback = MagicMock()
     return reactor
Ejemplo n.º 18
0
 def configure_interface(reactor: ReactorInterface):
     reactor._run_callback = MagicMock()
     return reactor
Ejemplo n.º 19
0
 def __init__(self):
     self.reactor = ReactorInterface(self)
     self.log = get_logger("Requester")
     self.reactor.add_dealer(url=URL, callback='handle_reply', id=self._ID)
     self.reactor.notify_ready()
Ejemplo n.º 20
0
 def __init__(self):
     self.reactor = ReactorInterface(self)
     self.log = get_logger("Replier")
     self.reactor.add_router(url=URL, callback='handle_request')
     self.reactor.notify_ready()
Ejemplo n.º 21
0
def configure_interface(reactor: ReactorInterface):
    print("\n\n configing interface \n\n")
    reactor._run_callback = MagicMock()
    return reactor
Ejemplo n.º 22
0
 def __init__(self, url):
     self.url = url
     self.reactor = ReactorInterface(self)
Ejemplo n.º 23
0
    def __init__(self):
        self.log = get_logger("Tester")
        self.log.info("ReactorTester created")

        self.loop = asyncio.new_event_loop()
        self.reactor = ReactorInterface(self, self.loop)