From 91c6cd96465ba92469bc7a05e5848f7abb2ebccc Mon Sep 17 00:00:00 2001
From: Malte Franken <exxamalte@users.noreply.github.com>
Date: Tue, 15 Oct 2019 00:02:00 +1100
Subject: [PATCH] Move imports in darksky component (#27633)

* move imports to top-level

* modify patch path

* removed unused mocks and patches
---
 homeassistant/components/darksky/sensor.py  |  3 +--
 homeassistant/components/darksky/weather.py |  3 +--
 tests/components/darksky/test_sensor.py     | 23 +++++++++++++--------
 3 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/homeassistant/components/darksky/sensor.py b/homeassistant/components/darksky/sensor.py
index d4e7e7ec63a..cd8417e3e84 100644
--- a/homeassistant/components/darksky/sensor.py
+++ b/homeassistant/components/darksky/sensor.py
@@ -2,6 +2,7 @@
 import logging
 from datetime import timedelta
 
+import forecastio
 import voluptuous as vol
 from requests.exceptions import ConnectionError as ConnectError, HTTPError, Timeout
 
@@ -797,8 +798,6 @@ class DarkSkyData:
 
     def _update(self):
         """Get the latest data from Dark Sky."""
-        import forecastio
-
         try:
             self.data = forecastio.load_forecast(
                 self._api_key,
diff --git a/homeassistant/components/darksky/weather.py b/homeassistant/components/darksky/weather.py
index dc5708d12a0..41f063399c1 100644
--- a/homeassistant/components/darksky/weather.py
+++ b/homeassistant/components/darksky/weather.py
@@ -2,6 +2,7 @@
 from datetime import timedelta
 import logging
 
+import forecastio
 from requests.exceptions import ConnectionError as ConnectError, HTTPError, Timeout
 import voluptuous as vol
 
@@ -244,8 +245,6 @@ class DarkSkyData:
     @Throttle(MIN_TIME_BETWEEN_UPDATES)
     def update(self):
         """Get the latest data from Dark Sky."""
-        import forecastio
-
         try:
             self.data = forecastio.load_forecast(
                 self._api_key, self.latitude, self.longitude, units=self.requested_units
diff --git a/tests/components/darksky/test_sensor.py b/tests/components/darksky/test_sensor.py
index 23d16ed35f4..be66b74c186 100644
--- a/tests/components/darksky/test_sensor.py
+++ b/tests/components/darksky/test_sensor.py
@@ -112,7 +112,10 @@ class TestDarkSkySetup(unittest.TestCase):
         self.hass.stop()
 
     @MockDependency("forecastio")
-    @patch("forecastio.load_forecast", new=load_forecastMock)
+    @patch(
+        "homeassistant.components.darksky.sensor.forecastio.load_forecast",
+        new=load_forecastMock,
+    )
     def test_setup_with_config(self, mock_forecastio):
         """Test the platform setup with configuration."""
         setup_component(self.hass, "sensor", VALID_CONFIG_MINIMAL)
@@ -120,9 +123,7 @@ class TestDarkSkySetup(unittest.TestCase):
         state = self.hass.states.get("sensor.dark_sky_summary")
         assert state is not None
 
-    @MockDependency("forecastio")
-    @patch("forecastio.load_forecast", new=load_forecastMock)
-    def test_setup_with_invalid_config(self, mock_forecastio):
+    def test_setup_with_invalid_config(self):
         """Test the platform setup with invalid configuration."""
         setup_component(self.hass, "sensor", INVALID_CONFIG_MINIMAL)
 
@@ -130,7 +131,10 @@ class TestDarkSkySetup(unittest.TestCase):
         assert state is None
 
     @MockDependency("forecastio")
-    @patch("forecastio.load_forecast", new=load_forecastMock)
+    @patch(
+        "homeassistant.components.darksky.sensor.forecastio.load_forecast",
+        new=load_forecastMock,
+    )
     def test_setup_with_language_config(self, mock_forecastio):
         """Test the platform setup with language configuration."""
         setup_component(self.hass, "sensor", VALID_CONFIG_LANG_DE)
@@ -138,9 +142,7 @@ class TestDarkSkySetup(unittest.TestCase):
         state = self.hass.states.get("sensor.dark_sky_summary")
         assert state is not None
 
-    @MockDependency("forecastio")
-    @patch("forecastio.load_forecast", new=load_forecastMock)
-    def test_setup_with_invalid_language_config(self, mock_forecastio):
+    def test_setup_with_invalid_language_config(self):
         """Test the platform setup with language configuration."""
         setup_component(self.hass, "sensor", INVALID_CONFIG_LANG)
 
@@ -164,7 +166,10 @@ class TestDarkSkySetup(unittest.TestCase):
         assert not response
 
     @MockDependency("forecastio")
-    @patch("forecastio.load_forecast", new=load_forecastMock)
+    @patch(
+        "homeassistant.components.darksky.sensor.forecastio.load_forecast",
+        new=load_forecastMock,
+    )
     def test_setup_with_alerts_config(self, mock_forecastio):
         """Test the platform setup with alert configuration."""
         setup_component(self.hass, "sensor", VALID_CONFIG_ALERTS)
-- 
GitLab