Exemplo n.º 1
0
 def test_asr(self):
     config = models.Config.load()
     config.location = "75005"
     config.unit = NabWeatherd.UNIT_CELSIUS
     config.weather_animation_type = "weather"
     config.save()
     service = NabWeatherd()
     writer = MockWriter()
     service.writer = writer
     packet = {
         "type": "asr_event",
         "nlu": {
             "intent": "nabweatherd/forecast"
         }
     }
     async_to_sync(service.process_nabd_packet)(packet)
     self.assertEqual(len(writer.written), 3)
     packet = writer.written[0]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "info")
     self.assertEqual(packet_json["info_id"], "nabweatherd_rain")
     packet = writer.written[1]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "info")
     self.assertEqual(packet_json["info_id"], "nabweatherd")
     self.assertTrue("animation" in packet_json)
     packet = writer.written[2]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "message")
     self.assertTrue("signature" in packet_json)
     self.assertTrue("body" in packet_json)
Exemplo n.º 2
0
 def test_perform_rain(self):
     service = NabWeatherd()
     writer = MockWriter()
     service.writer = writer
     config_t = (
         TestNabWeatherdDB.RENNES_LOCATION_JSON,
         NabWeatherd.UNIT_CELSIUS,
         "rain_only",
         3,
         None,
         False,
     )
     expiration = datetime.datetime(2019, 4, 22, 0, 0, 0)
     async_to_sync(service.perform)(expiration, "today", config_t)
     self.assertEqual(len(writer.written), 3)
     packet = writer.written[0]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "info")
     self.assertEqual(packet_json["info_id"], "nabweatherd_rain")
     packet = writer.written[1]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "info")
     self.assertEqual(packet_json["info_id"], "nabweatherd")
     self.assertFalse("animation" in packet_json)
     packet = writer.written[2]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "message")
     self.assertTrue("signature" in packet_json)
     self.assertTrue("body" in packet_json)
Exemplo n.º 3
0
 def test_aliases(self):
     service = NabWeatherd()
     weather_class = service.normalize_weather_class("J_W1_0-N_4")
     self.assertEqual(weather_class, "J_W1_0-N_1")
     weather_class = service.normalize_weather_class("J_W1_0-N_1")
     self.assertEqual(weather_class, "J_W1_0-N_1")
     weather_class = service.normalize_weather_class("J_W2_4-N_1")
     self.assertEqual(weather_class, "J_W1_3-N_0")
Exemplo n.º 4
0
 def test_perform(self):
     service = NabWeatherd()
     writer = MockWriter()
     service.writer = writer
     config_t = ("75005", NabWeatherd.UNIT_CELSIUS, "rain")
     expiration = datetime.datetime(2019, 4, 22, 0, 0, 0)
     async_to_sync(service.perform)(expiration, "today", config_t)
     self.assertEqual(len(writer.written), 2)
     packet = writer.written[0]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "info")
     self.assertEqual(packet_json["info_id"], "nabweatherd")
     self.assertTrue("animation" in packet_json)
     packet = writer.written[1]
     packet_json = json.loads(packet.decode("utf8"))
     self.assertEqual(packet_json["type"], "message")
     self.assertTrue("signature" in packet_json)
     self.assertTrue("body" in packet_json)
Exemplo n.º 5
0
 def test_fetch_info_data(self):
     service = NabWeatherd()
     data = async_to_sync(service.fetch_info_data)(
         ("75005", NabWeatherd.UNIT_CELSIUS, "both"))
     self.assertTrue("current_weather_class" in data)
     self.assertTrue("today_forecast_weather_class" in data)
     self.assertTrue("today_forecast_max_temp" in data)
     self.assertTrue("tomorrow_forecast_weather_class" in data)
     self.assertTrue("tomorrow_forecast_max_temp" in data)
     self.assertTrue("next_rain" in data)
     self.assertTrue("weather_animation_type" in data)
Exemplo n.º 6
0
    def test_fetch_info_data(self):
        service = NabWeatherd()

        data = async_to_sync(service.fetch_info_data)((
            TestNabWeatherdDB.RENNES_LOCATION_JSON,
            NabWeatherd.UNIT_CELSIUS,
            "weather_and_rain",
            3,
            None,
            False,
        ))
        self.assertTrue("current_weather_class" in data)
        self.assertTrue("today_forecast_weather_class" in data)
        self.assertTrue("today_forecast_max_temp" in data)
        self.assertTrue("tomorrow_forecast_weather_class" in data)
        self.assertTrue("tomorrow_forecast_max_temp" in data)
        self.assertTrue("next_rain" in data)
        self.assertTrue("weather_animation_type" in data)
Exemplo n.º 7
0
 def test_aliases(self):
     service = NabWeatherd()
     weather_class = service.normalize_weather_class("Pluie forte")
     self.assertEqual(weather_class, "Pluie forte")
     weather_class = service.normalize_weather_class("None")
     self.assertEqual(weather_class, None)