Beispiel #1
0
    def test_parse_status_xml(self):
        from bbqdaemon.regulator.cyberqwifi import parser

        data = parser(status_xml)
        self.assertEqual(len(data), 15)
        self.assertTrue("COOK_TEMP" in data)
        self.assertEqual(data["COOK_TEMP"], "OPEN")
        self.assertTrue("COOK_STATUS" in data)
        self.assertEqual(data["COOK_STATUS"], "ERROR")
Beispiel #2
0
 def handle_request(self, response):
     interval = self.active_poll_interval
     if response.error:
         self.consecutive_errors += 1
         if self.consecutive_errors > 3:
             interval = self.passive_poll_interval
         logging.debug("Request failed: {}".format(response.error))
     else:
         self.consecutive_errors = 0
         print(response.headers)
         try:
             data = cyberqwifi.parser(response.body)
             self.data_storage.store(datetime.datetime.now(), data)
         except cyberqwifi.CyberQWiFiException as e:
             logging.warning("Failed to parse xml: {}\nException: {}".format(response.body, e))
     nextpoll = self.poll_time + datetime.timedelta(seconds=interval)
     tornado.ioloop.IOLoop.instance().add_timeout(nextpoll - datetime.datetime.now(), self.poll)