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")
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)