| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | # systemctl-mqtt - MQTT client triggering & reporting shutdown on systemd-based systems## Copyright (C) 2020 Fabian Peter Hammerle <fabian@hammerle.me>## This program is free software: you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation, either version 3 of the License, or# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <https://www.gnu.org/licenses/>.import unittest.mockimport pytestimport systemctl_mqtt._homeassistant# pylint: disable=protected-access@pytest.mark.parametrize(    ("hostname", "expected_node_id"),    [        ("raspberrypi", "raspberrypi"),        ("da-sh", "da-sh"),        ("under_score", "under_score"),        ("someone evil mocked the hostname", "someoneevilmockedthehostname"),    ],)def test_get_default_node_id(hostname, expected_node_id):    with unittest.mock.patch(        "systemctl_mqtt._utils.get_hostname", return_value=hostname    ):        assert systemctl_mqtt._homeassistant.get_default_node_id() == expected_node_id@pytest.mark.parametrize(    ("node_id", "valid"),    [        ("raspberrypi", True),        ("da-sh", True),        ("under_score", True),        ('" or ""="', False),        ("", False),    ],)def test_validate_node_id(node_id, valid):    assert systemctl_mqtt._homeassistant.validate_node_id(node_id) == valid
 |