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