예제 #1
0
    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")
예제 #2
0
    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")
예제 #3
0
    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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
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())
예제 #7
0
 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)
예제 #8
0
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
예제 #9
0
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
예제 #10
0
 def test_get_not_exists(self):
     with Storage() as storage:
         self.assertEqual(storage.get("c"), None)
예제 #11
0
 def test_inc_multiple(self):
     value = 1
     with Storage() as storage:
         value = storage.inc("a", value, 2)
         self.assertEqual(storage.get_float("a"), value)