def run( keep_running: bool, config_file: str = 'config.ini', ): """ main cli entrypoint Args: keep_running (bool): Whether or not to keep running. Default: False config_file (str): The configuration file location to load. """ file = pathlib.Path(config_file) if not file.exists(): raise ConfigurationFileNotFoundException() CONFIG.read(config_file) logging_level = 'INFO' try: logging_level = CONFIG['general'].get('logging_level', 'INFO') except KeyError: pass LOGGER.setLevel(logging.getLevelName(logging_level)) device = tilt_device.TiltDevice() signal.signal(signal.SIGINT, partial(terminate_process, device)) device.start() threading.Thread( target=scan_and_emit_thread, name='tilty_daemon', args=(device, CONFIG, keep_running) ).start() if keep_running: while True: pass
def test_scan_for_tilt_data(mock_get_events, mock_hci_open_dev): t = tilt_device.TiltDevice() data = t.scan_for_tilt_data() assert data[0]['color'] == 'Black' assert data[0]['gravity'] == 0.998 assert data[0]['temp'] == 70 assert data[0]['mac'] == '00:0a:95:9d:68:16' assert data[0]['uuid'] == 'a495bb30c5b14b44b5121370f02d74de' assert data[1]['color'] == 'Blue' assert data[1]['gravity'] == 1.090 assert data[1]['temp'] == 65 assert data[1]['mac'] == '00:0a:95:9d:68:17' assert data[1]['uuid'] == 'a495bb60c5b14b44b5121370f02d74de'
def run( keep_running, config_file='config.ini', ): """ main cli entrypoint """ CONFIG.read(config_file) click.echo('Scanning for Tilt data...') device = tilt_device.TiltDevice() signal.signal(signal.SIGINT, partial(terminate_process, device)) device.start() threading.Thread(target=scan_and_emit_thread, name='tilty_daemon', args=(device, CONFIG, keep_running)).start() if keep_running: while True: pass
def run( keep_running: bool, config_file: str = 'config.ini', ): """ main cli entrypoint Args: keep_running (bool): Whether or not to keep running. Default: False config_file (str): The configuration file location to load. """ file = pathlib.Path(config_file) if not file.exists(): raise ConfigurationFileNotFoundException() CONFIG.read(config_file) handler = logging.StreamHandler(sys.stdout) logging_level = 'INFO' try: logging_level = CONFIG['general'].get('logging_level', 'INFO') logfile = CONFIG['general'].get('logfile', None) if logfile: handler = logging.FileHandler(filename=logfile) except KeyError: pass LOGGER.setLevel(logging.getLevelName(logging_level)) handler.setLevel(logging_level) LOGGER.addHandler(handler) keep_running_flag = threading.Event() if keep_running: keep_running_flag.set() device = tilt_device.TiltDevice() signal.signal(signal.SIGINT, partial(terminate_process, device, keep_running_flag)) device.start() main_thread = threading.Thread(target=scan_and_emit_thread, name='tilty_daemon', args=(device, CONFIG, keep_running_flag)) main_thread.start() main_thread.join()
def test_scan_for_tilt_data(bt_events, ): t = tilt_device.TiltDevice() tilt_data = t.scan_for_tilt_data() bt_events.assert_called() assert tilt_data == [{ 'color': 'Black', 'gravity': 0.001, 'temp': 2.0, 'mac': '00:0a:95:9d:68:16', 'timestamp': mock.ANY, 'uuid': 'a495bb30c5b14b44b5121370f02d74de' }] assert t.scan_for_tilt_data( temperature_offset=10, gravity_offset=-0.05, ) == [{ 'color': 'Black', 'gravity': -0.049, 'temp': 12, 'mac': '00:0a:95:9d:68:16', 'timestamp': mock.ANY, 'uuid': 'a495bb30c5b14b44b5121370f02d74de' }] assert t.scan_for_tilt_data( temperature_offset=-5, gravity_offset=0.001, ) == [{ 'color': 'Black', 'gravity': 0.002, 'temp': -3.0, 'mac': '00:0a:95:9d:68:16', 'timestamp': mock.ANY, 'uuid': 'a495bb30c5b14b44b5121370f02d74de' }]
def test_scan_for_tilt_data( mock_disable_le_scan, ): t = tilt_device.TiltDevice() t.stop() mock_disable_le_scan.assert_called()
def test_scan_for_tilt_data(bt_events, ): t = tilt_device.TiltDevice() t.scan_for_tilt_data() bt_events.assert_called()
def test_stop(mock_disable_le_scan, mock_hci_open_dev): t = tilt_device.TiltDevice() t.stop() mock_hci_open_dev.assert_called() mock_disable_le_scan.assert_called_with(t.sock)
def test_scan_for_tilt_data_no_uuid(mock_get_events, mock_hci_open_dev): t = tilt_device.TiltDevice() data = t.scan_for_tilt_data() assert len(data) == 0