class TestBLED112AdapterStream(unittest.TestCase): """ Test to make sure that the BLED112AdapterStream is working properly Test that it can connect, connect_direct, send rpcs and get reports """ def setUp(self): self.old_serial = serial.Serial serial.Serial = util.dummy_serial.Serial self.adapter = MockBLED112(3) self.dev1 = MockIOTileDevice(100, 'TestCN') self.dev1_ble = MockBLEDevice("00:11:22:33:44:55", self.dev1) self.adapter.add_device(self.dev1_ble) util.dummy_serial.RESPONSE_GENERATOR = self.adapter.generate_response self.dev1.reports = [ IndividualReadingReport.FromReadings(100, [IOTileReading(0, 1, 2)]) ] self._reports_received = threading.Event() logging.basicConfig(level=logging.INFO, stream=sys.stdout) self.scanned_devices = [] self.hw = HardwareManager(port='bled112:test') def tearDown(self): self.hw.close() def test_connect_direct(self): self.hw.connect_direct("00:11:22:33:44:55") def test_connect_nonexistent(self): with pytest.raises(HardwareError): self.hw.connect_direct("00:11:22:33:44:56") def test_connect_badconnstring(self): with pytest.raises(HardwareError): self.hw.connect_direct("00:11:22:33:44:5L") def test_report_streaming(self): self.hw.connect_direct("00:11:22:33:44:55") assert self.hw.count_reports() == 0 self.hw.enable_streaming() time.sleep( 0.2) #Wait for report callback to happen from bled112 thread assert self.hw.count_reports() == 1
class TestBLED112Loopback(unittest.TestCase): def setUp(self): self.vdev = subprocess.Popen( ['virtual_device', 'bled112', 'report_test']) bleds = BLED112Adapter.find_bled112_devices() print(bleds) self.hw = HardwareManager(port='bled112:{}'.format(bleds[1])) def tearDown(self): self.hw.close() self.vdev.terminate() def test_loopback(self): time.sleep(2) print(self.hw.scan()) self.hw.connect(1) con = self.hw.controller() assert con.ModuleName() == 'Simple' self.hw.enable_streaming() assert self.hw.count_reports() == 11