Home Assistant Git Exporter
This commit is contained in:
0
config/custom_components/vigieau/tests/__init__.py
Normal file
0
config/custom_components/vigieau/tests/__init__.py
Normal file
44
config/custom_components/vigieau/tests/test_regexp.py
Normal file
44
config/custom_components/vigieau/tests/test_regexp.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from os import path
|
||||
import sys
|
||||
|
||||
current_dir = path.dirname(__file__)
|
||||
parent_dir = path.dirname(current_dir)
|
||||
sys.path.append(".")
|
||||
sys.path.append(parent_dir)
|
||||
from custom_components.vigieau.const import SENSOR_DEFINITIONS
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
class TestRegexp(unittest.TestCase):
|
||||
def test_matcher_in_component(self):
|
||||
file = os.path.join(parent_dir, "scripts/full_usage_list.json")
|
||||
with open(file) as f:
|
||||
input = f.read()
|
||||
data = json.loads(input)
|
||||
|
||||
for restriction in data["restrictions"]: # For all restrictions in the list
|
||||
with self.subTest(
|
||||
msg="One matcher failed"
|
||||
): # For soft fail, ref https://stackoverflow.com/questions/4732827/continuing-in-pythons-unittest-when-an-assertion-fails
|
||||
found = False
|
||||
for sensor in SENSOR_DEFINITIONS:
|
||||
# We may have to create a function rather than copy/paste, but it's a 'simple re.search....
|
||||
for matcher in sensor.matchers:
|
||||
if re.search(
|
||||
matcher,
|
||||
restriction["usage"] + "|" + restriction['thematique'],
|
||||
re.IGNORECASE,
|
||||
):
|
||||
found = True
|
||||
self.assertTrue(
|
||||
found,
|
||||
f"Value **{restriction['usage']}** in category **{restriction['thematique']}** not found in matcher",
|
||||
) # Check for one usage if it has been found
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user