Windfree poller application & jenkins pipeline
This commit is contained in:
38
tests/test_events.py
Normal file
38
tests/test_events.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from windfree_poller.config import Config, Field
|
||||
from windfree_poller.events import extract, status_event
|
||||
|
||||
|
||||
def config(*fields):
|
||||
return Config("pi", "device", 300, 10, "https://example/v1", "", "", "", "token", Path("token.json"), "http://localhost", 10, fields)
|
||||
|
||||
|
||||
class EventTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.status = {"components": {"main": {
|
||||
"temperatureMeasurement": {"temperature": {"value": 23.5, "unit": "C", "timestamp": "2026-01-01T00:00:00Z"}},
|
||||
"airConditionerFanMode": {"fanMode": {"value": "windFree"}},
|
||||
}}}
|
||||
|
||||
def test_extract_and_equals_conversion(self):
|
||||
found, value, _, _ = extract(self.status, Field("windfree", "main", "airConditionerFanMode", "fanMode", "windFree"))
|
||||
self.assertTrue(found)
|
||||
self.assertIs(value, True)
|
||||
|
||||
def test_missing_field_is_warning(self):
|
||||
event = status_event(config(Field("temperature", "main", "temperatureMeasurement", "temperature"),
|
||||
Field("humidity", "main", "relativeHumidityMeasurement", "humidity")), self.status)
|
||||
self.assertEqual(event["status"], "no_data")
|
||||
self.assertEqual(event["level"], "warning")
|
||||
self.assertEqual(event["missing_fields"], ["humidity"])
|
||||
|
||||
def test_all_fields_is_ok(self):
|
||||
event = status_event(config(Field("temperature", "main", "temperatureMeasurement", "temperature")), self.status)
|
||||
self.assertEqual((event["level"], event["status"]), ("info", "ok"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user