def test_autodetect(self): SAMPLE_DATA = b'1|cmd=home\n' logger = MagicMock(write=MagicMock(return_value=datetime.timedelta())) bus = Bus(logger) c = LoRa(bus=bus.handle('lora'), config={'device_id': 4}) tester = bus.handle('tester') tester.register('raw') bus.connect('tester.raw', 'lora.raw') c.start() tester.publish('raw', SAMPLE_DATA) c.request_stop() c.join() self.assertEqual(c.device_id, 4)
def test_autodetect(self): SAMPLE_DATA = b'1|cmd=home\n' logger = MagicMock() robot_bus = BusHandler(logger, out={}, name='robot') bus = BusHandler(logger, out={'raw':[(robot_bus.queue, 'raw')]}, name='lora') c = LoRa(bus=bus, config={'device_id': 4}) c.start() c.bus.queue.put((123, 'raw', SAMPLE_DATA)) c.request_stop() c.join() self.assertEqual(c.device_id, 4)
def test_send_cmd(self): logger = MagicMock() bus = Bus(logger) logger.write = MagicMock(return_value=datetime.timedelta( microseconds=9721)) c = LoRa(bus=bus.handle('lora'), config={'device_id': 3}) tester = bus.handle('tester') tester.register('raw') bus.connect('lora.cmd', 'tester.cmd') bus.connect('tester.raw', 'lora.raw') c.start() tester.publish('raw', b'1|3:GoHome:1234\n') c.request_stop() c.join() self.assertEqual(tester.listen()[2], b'GoHome')
def test_autodetect_bug(self): logger = MagicMock() logger.write = MagicMock(return_value=datetime.timedelta( microseconds=9721)) bus = Bus(logger) c = LoRa(bus=bus.handle('lora'), config={}) # force autodetection tester = bus.handle('tester') tester.register('raw') bus.connect('tester.raw', 'lora.raw') c.start() tester.publish('raw', b'4|alive\n') tester.publish('raw', b'4|alive-97') tester.publish('raw', b'21\n') c.request_stop() c.join() self.assertEqual(c.device_id, 4)
def test_autodetect_bug(self): logger = MagicMock() robot_bus = BusHandler(logger, out={}, name='robot') logger.write = MagicMock(return_value=datetime.timedelta(microseconds=9721)) bus = BusHandler(logger, out={'raw':[(robot_bus.queue, 'raw')]}, name='lora') c = LoRa(bus=bus, config={}) # force autodetection c.start() c.bus.queue.put((datetime.timedelta(microseconds=1331), 'raw', b'4|alive\n')) # c.bus.queue.put((datetime.timedelta(microseconds=29000), 'raw', b'4|alive-9721\n')) c.bus.queue.put((datetime.timedelta(microseconds=29000), 'raw', b'4|alive-97')) c.bus.queue.put((datetime.timedelta(microseconds=29200), 'raw', b'21\n')) c.request_stop() c.join() self.assertEqual(c.device_id, 4)
def test_control_center(self): logger = MagicMock() bus = Bus(logger) logger.write = MagicMock(return_value=datetime.timedelta(seconds=97)) c = LoRa(bus=bus.handle('lora'), config={'device_id': 1}) app = bus.handle('app') app.register('cmd') tester = bus.handle('serial') tester.register('raw') bus.connect('app.cmd', 'lora.cmd') bus.connect('lora.raw', 'serial.raw') c.start() app.publish('cmd', [3, b'Pause']) c.request_stop() c.join() self.assertEqual(tester.listen()[2], b'alive\n') self.assertEqual(tester.listen()[2], b'3:Pause:97\n')