From 07cc4c95efb144185a941bd49f51f00aa954af81 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Fri, 12 Feb 2021 20:31:37 +0100
Subject: [PATCH] SensorLineChartTile: fallback time if no data available in
 the configured timespan now uses the configured timespan instead of time
 since 1970

---
 src/logic/tile/tiles/SensorLineChartTile.py      | 7 +++----
 src/version.json                                 | 4 ++--
 test/logic/tile/tiles/TestSensorLineChartTile.py | 4 ++--
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/logic/tile/tiles/SensorLineChartTile.py b/src/logic/tile/tiles/SensorLineChartTile.py
index 4d21d14..68845aa 100644
--- a/src/logic/tile/tiles/SensorLineChartTile.py
+++ b/src/logic/tile/tiles/SensorLineChartTile.py
@@ -52,7 +52,6 @@ class SensorLineChartTile(Tile):
 
     DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
     DATE_FORMAT_CHART = '%H:%M:%S'
-    DATETIME_UNIX_TIMESTAMP_START = datetime(year=1970, month=1, day=1, hour=0, minute=0, second=0)
 
     MAX_Y_AXIS_SPACING = 2
 
@@ -63,14 +62,14 @@ class SensorLineChartTile(Tile):
     def fetch(self, pageName: str) -> Dict:
         storageLeafService = ServiceManager.get_instance().get_service_by_type_name('StorageLeafService')
 
-        startDateTime = datetime.strftime(datetime.now() - timedelta(hours=self._settings['numberOfHoursToShow']),
-                                          self.DATE_FORMAT)
+        startDateTimeObj = datetime.now() - timedelta(hours=self._settings['numberOfHoursToShow'])
+        startDateTime = datetime.strftime(startDateTimeObj,self.DATE_FORMAT)
         endDateTime = datetime.strftime(datetime.now(), self.DATE_FORMAT)
 
         sensorData = self.__get_sensor_data_from_service(endDateTime, pageName, startDateTime, storageLeafService)
 
         x, y = self._prepare_measurement_data(sensorData['sensorValue'])
-        latestTime = datetime.strptime(x[-1], self.DATE_FORMAT) if x else self.DATETIME_UNIX_TIMESTAMP_START
+        latestTime = datetime.strptime(x[-1], self.DATE_FORMAT) if x else startDateTimeObj
         latestValue = y[-1] if y else ''
 
         minValue, maxValue = self._get_min_and_max(pageName,
diff --git a/src/version.json b/src/version.json
index 9542988..6ccbc0d 100644
--- a/src/version.json
+++ b/src/version.json
@@ -1,7 +1,7 @@
 {
     "version": {
-        "name": "v1.10.0",
-        "code": 14,
+        "name": "v1.10.1",
+        "code": 15,
         "date": "12.02.21"
     }
 }
\ No newline at end of file
diff --git a/test/logic/tile/tiles/TestSensorLineChartTile.py b/test/logic/tile/tiles/TestSensorLineChartTile.py
index a44e123..749192f 100644
--- a/test/logic/tile/tiles/TestSensorLineChartTile.py
+++ b/test/logic/tile/tiles/TestSensorLineChartTile.py
@@ -184,7 +184,7 @@ class TestGetTimeSinceLastValue:
         tile = SensorLineChartTile('mySensorTile', example_settings(False), 10)
 
         warningSettings = self.__get_warning_settings(False)
-        data = {'latestTime': SensorLineChartTile.DATETIME_UNIX_TIMESTAMP_START}
+        data = {'latestTime': datetime.datetime(year=2021, month=1, day=1, hour=12, minute=0, second=0)}
 
         assert tile._get_time_since_last_value(warningSettings, data) == ''
 
@@ -200,7 +200,7 @@ class TestGetTimeSinceLastValue:
     def test_warnings_enabled_outdated_value_returns_human_readable_string(self, datetimeMock):
         tile = SensorLineChartTile('mySensorTile', example_settings(False), 10)
 
-        datetimeMock.now.return_value = datetime.datetime(year=2021, month=1, day=1, hour=12, minute=00, second=00)
+        datetimeMock.now.return_value = datetime.datetime(year=2021, month=1, day=1, hour=12, minute=0, second=0)
 
         warningSettings = self.__get_warning_settings(True)
         data = {'latestTime': datetime.datetime(year=2021, month=1, day=1, hour=11, minute=00, second=00)}
-- 
GitLab