def test_udp(self): '''It should be able to send itself a udp packet through events''' event_reactor = EventReactor() server = UDPServer(event_reactor) client = UDPClient() server.start() reactor_thread = threading.Thread(target=event_reactor.start) reactor_thread.daemon = True reactor_thread.start() data = None def my_callback(event_id, address, data_): nonlocal data data = data_ # @UnusedVariable event_reactor.put(EventReactor.STOP_ID) event_reactor.register_handler( bytestag.network.UDP_INBOUND_EVENT, my_callback) client.send(server.server_address, b'hello') reactor_thread.join(1) event_reactor.put(EventReactor.STOP_ID) self.assertEqual(data, b'hello')
def test_reactor(self): '''It should process 1 event and then stop''' my_id = EventID('my_id') self.test_value = False def my_callback(event_id): self.assertEqual(my_id, event_id) self.test_value = True event_reactor = EventReactor() event_reactor.register_handler(my_id, my_callback) event_reactor.put(my_id) event_reactor.put(EventReactor.STOP_ID) event_reactor.start() self.assertTrue(self.test_value)