def test_put_str(self): with Storage() as storage: storage.put("a", "a") self.assertEqual(storage.get("a"), "a") with Storage() as storage: storage.put("b", "a") with Storage() as storage: self.assertEqual(storage.get("b"), "a")
def test_update(self): with Storage() as storage: storage.put("a", "a") self.assertEqual(storage.get("a"), "a") with Storage() as storage: storage.put("a", "b") with Storage() as storage: self.assertEqual(storage.get("a"), "b")
def test_put_float(self): with Storage() as storage: storage.put("a", 1.1) self.assertEqual(storage.get_float("a"), 1.1) with Storage() as storage: storage.put("b", 1.1) with Storage() as storage: self.assertEqual(storage.get_float("b"), 1.1)
def test_on_not_connected(self): config = common.load_config() with Storage() as storage, MqttClient("keeperconnectortest", config) as mc, Connector( config, storage, mc) as connector: connector.on_not_connect() self.assertEqual(connector.attempts, 1) self.assertEqual( storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 1) self.assertEqual( storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 0) connector.on_not_connect() self.assertEqual(connector.attempts, 2) self.assertEqual( storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 2) self.assertEqual( storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 0) connector.on_not_connect() self.assertEqual(connector.attempts, 3) self.assertEqual( storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 3) self.assertEqual( storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 0) connector.on_not_connect() self.assertEqual( storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 1) self.assertEqual(connector.attempts, 0) connector.on_not_connect() self.assertEqual(connector.attempts, 1) self.assertEqual( storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 4) self.assertEqual( storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 1)
def test_monitor_in_time_no_delay(self): config = common.load_config() with Storage() as storage, MqttClient("keeperconnectortest", config) as mc, Heartbeater(config, storage, mc) as heartbeater: heartbeater.last_message = datetime.now() - timedelta(seconds=config["heartbeat.interval"]) heartbeater.monitor() self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 0)
def test_not_stable(self): config = common.load_config() with Storage() as storage, MqttClient("keeperconnectortest", config) as mc, Connector( config, storage, mc) as connector: now = datetime.now() connector.started_at = now - timedelta(seconds=10) connector.connected_at = now - timedelta(seconds=8) self.assertFalse(connector.is_stable())
def test_monitor_restart_ha(self): config = common.load_config() with Storage() as storage, MqttClient("keeperconnectortest", config) as mc, Heartbeater(config, storage, mc) as heartbeater: diff = config["heartbeat.interval"] + config["heartbeat.delay"] + 1 heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 1) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 1) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 0) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 2) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 2) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 0) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 3) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 3) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 0) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 0) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 3) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 1) self.assertEqual(heartbeater.attempts, 1) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 4) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 2) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 5) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 3) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 6) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 0) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 6) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 2) heartbeater.last_message = datetime.now() - timedelta(seconds=diff) heartbeater.monitor() self.assertEqual(heartbeater.misses, 1) self.assertEqual(heartbeater.attempts, 2) self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 7) self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 2)
def start(): """ starts this manager and calls it's routine loop which monitors heartbeat messages """ config = load_config() with Storage() as storage, MqttClient("keeperheartbeater", config) as mqtt_client, \ Heartbeater(config, storage, mqtt_client) as heartbeater: del config try: loop(heartbeater, mqtt_client) except Exception as ex: if running: raise ex
def start(): """ starts this manager and calls it's routine loop which monitors mqtt connections """ config = load_config() with Storage() as storage, MqttClient("keeperconnector", config) as mqtt_client, Connector(config, storage, mqtt_client) as connector: del config try: loop(connector, mqtt_client) except Exception as ex: if running: raise ex
def test_get_not_exists(self): with Storage() as storage: self.assertEqual(storage.get("c"), None)
def test_inc_multiple(self): value = 1 with Storage() as storage: value = storage.inc("a", value, 2) self.assertEqual(storage.get_float("a"), value)