From 5686166253cc970c807f29e655fae9b7fe971325 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Tue, 9 Feb 2021 21:04:19 +0100 Subject: [PATCH] SensorLineChartTile: Refactoring: group tests info class --- .../tile/tiles/TestSensorLineChartTile.py | 198 ++++++++---------- 1 file changed, 86 insertions(+), 112 deletions(-) diff --git a/src/logic/tile/tiles/TestSensorLineChartTile.py b/src/logic/tile/tiles/TestSensorLineChartTile.py index 3c8cd11..58bafb0 100644 --- a/src/logic/tile/tiles/TestSensorLineChartTile.py +++ b/src/logic/tile/tiles/TestSensorLineChartTile.py @@ -1,13 +1,10 @@ import datetime from unittest.mock import MagicMock -import pytest - from logic.tile.tiles.SensorLineChartTile import SensorLineChartTile, SensorType -@pytest.fixture() -def example_settings(): +def example_settings(showAxes: bool): return { "title": "My Room", "url": "http://127.0.0.1:10003", @@ -17,23 +14,7 @@ def example_settings(): "decimals": 1, "lineColor": "rgba(254, 151, 0, 1)", "fillColor": "rgba(254, 151, 0, 0.2)", - "showAxes": False, - "outdatedValueWarningLimitInSeconds": 300 # use -1 to disable warning - } - - -@pytest.fixture() -def example_settings_with_axes(): - return { - "title": "My Room", - "url": "http://127.0.0.1:10003", - "sensorID": 1, - "sensorIDsForMinMax": [2, 3, 4], - "numberOfHoursToShow": 4, - "decimals": 1, - "lineColor": "rgba(254, 151, 0, 1)", - "fillColor": "rgba(254, 151, 0, 0.2)", - "showAxes": True, + "showAxes": showAxes, "outdatedValueWarningLimitInSeconds": 300 # use -1 to disable warning } @@ -47,94 +28,87 @@ def storage_leaf_service_mock(minValue, maxValue): return storageLeafServiceMock -START_DATE = datetime.date(year=2021, month=2, day=8) -END_DATE = datetime.date(year=2021, month=2, day=9) - - -def test_humidity_returns_0_and_100(example_settings): - tile = SensorLineChartTile('mySensorTile', example_settings, 10) - yValues = ['12.5', '10.5'] - - result = tile._get_min_and_max('myPage', - SensorType.HUMIDITY, - START_DATE, END_DATE, - storage_leaf_service_mock(15.0, 20.0), - yValues) - assert result == (0, 100) - - -def test_temperature_no_values_returns_min_and_max_of_api(example_settings): - tile = SensorLineChartTile('mySensorTile', example_settings, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(15.0, 20.0), - []) - assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, 20 + SensorLineChartTile.MAX_Y_AXIS_SPACING) - - -def test_temperature_min_max_data_is_none_returns_zero(example_settings): - tile = SensorLineChartTile('mySensorTile', example_settings, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(None, None), - []) - assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, SensorLineChartTile.MAX_Y_AXIS_SPACING) - - -def test_temperature_min_is_above_zero_returns_zero_min(example_settings): - tile = SensorLineChartTile('mySensorTile', example_settings, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(5, 6), - []) - assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, 6 + SensorLineChartTile.MAX_Y_AXIS_SPACING) - - -def test_temperature_min_is_below_zero_returns_min(example_settings): - tile = SensorLineChartTile('mySensorTile', example_settings, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(-3, 6), - []) - assert result == (-3 - SensorLineChartTile.MAX_Y_AXIS_SPACING, 6 + SensorLineChartTile.MAX_Y_AXIS_SPACING) - - -def test_temperature_show_axes_no_values(example_settings_with_axes): - tile = SensorLineChartTile('mySensorTile', example_settings_with_axes, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(None, None), - []) - assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, SensorLineChartTile.MAX_Y_AXIS_SPACING) - - -def test_temperature_show_axes_values_above_zero_return_zero_min(example_settings_with_axes): - tile = SensorLineChartTile('mySensorTile', example_settings_with_axes, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(None, None), - [6.0, 12]) - assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, 12 + SensorLineChartTile.MAX_Y_AXIS_SPACING) - - -def test_temperature_show_axes_values_below_zero_return_min(example_settings_with_axes): - tile = SensorLineChartTile('mySensorTile', example_settings_with_axes, 10) - - result = tile._get_min_and_max('myPage', - SensorType.TEMPERATURE, - START_DATE, END_DATE, - storage_leaf_service_mock(None, None), - [-6.0, 12]) - assert result == (-6 - SensorLineChartTile.MAX_Y_AXIS_SPACING, 12 + SensorLineChartTile.MAX_Y_AXIS_SPACING) +class TestGetMinMax: + START_DATE = datetime.date(year=2021, month=2, day=8) + END_DATE = datetime.date(year=2021, month=2, day=9) + + def test_humidity_returns_0_and_100(self): + tile = SensorLineChartTile('mySensorTile', example_settings(False), 10) + yValues = ['12.5', '10.5'] + + result = tile._get_min_and_max('myPage', + SensorType.HUMIDITY, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(15.0, 20.0), + yValues) + assert result == (0, 100) + + def test_temperature_no_values_returns_min_and_max_of_api(self): + tile = SensorLineChartTile('mySensorTile', example_settings(False), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(15.0, 20.0), + []) + assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, 20 + SensorLineChartTile.MAX_Y_AXIS_SPACING) + + def test_temperature_min_max_data_is_none_returns_zero(self): + tile = SensorLineChartTile('mySensorTile', example_settings(False), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(None, None), + []) + assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, SensorLineChartTile.MAX_Y_AXIS_SPACING) + + def test_temperature_min_is_above_zero_returns_zero_min(self): + tile = SensorLineChartTile('mySensorTile', example_settings(False), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(5, 6), + []) + assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, 6 + SensorLineChartTile.MAX_Y_AXIS_SPACING) + + def test_temperature_min_is_below_zero_returns_min(self): + tile = SensorLineChartTile('mySensorTile', example_settings(False), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(-3, 6), + []) + assert result == (-3 - SensorLineChartTile.MAX_Y_AXIS_SPACING, 6 + SensorLineChartTile.MAX_Y_AXIS_SPACING) + + def test_temperature_show_axes_no_values(self): + tile = SensorLineChartTile('mySensorTile', example_settings(True), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(None, None), + []) + assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, SensorLineChartTile.MAX_Y_AXIS_SPACING) + + def test_temperature_show_axes_values_above_zero_return_zero_min(self): + tile = SensorLineChartTile('mySensorTile', example_settings(True), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(None, None), + [6.0, 12]) + assert result == (-SensorLineChartTile.MAX_Y_AXIS_SPACING, 12 + SensorLineChartTile.MAX_Y_AXIS_SPACING) + + def test_temperature_show_axes_values_below_zero_return_min(self): + tile = SensorLineChartTile('mySensorTile', example_settings(True), 10) + + result = tile._get_min_and_max('myPage', + SensorType.TEMPERATURE, + self.START_DATE, self.END_DATE, + storage_leaf_service_mock(None, None), + [-6.0, 12]) + assert result == (-6 - SensorLineChartTile.MAX_Y_AXIS_SPACING, 12 + SensorLineChartTile.MAX_Y_AXIS_SPACING) -- GitLab