55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
"""The tests for the folder sensor."""
|
|
import os
|
|
import unittest
|
|
|
|
from homeassistant.components.folder.sensor import CONF_FOLDER_PATHS
|
|
from homeassistant.setup import setup_component
|
|
|
|
from tests.common import get_test_home_assistant
|
|
|
|
CWD = os.path.join(os.path.dirname(__file__))
|
|
TEST_FOLDER = "test_folder"
|
|
TEST_DIR = os.path.join(CWD, TEST_FOLDER)
|
|
TEST_TXT = "mock_test_folder.txt"
|
|
TEST_FILE = os.path.join(TEST_DIR, TEST_TXT)
|
|
|
|
|
|
def create_file(path):
|
|
"""Create a test file."""
|
|
with open(path, "w") as test_file:
|
|
test_file.write("test")
|
|
|
|
|
|
class TestFolderSensor(unittest.TestCase):
|
|
"""Test the filesize sensor."""
|
|
|
|
def setup_method(self, method):
|
|
"""Set up things to be run when tests are started."""
|
|
self.hass = get_test_home_assistant()
|
|
if not os.path.isdir(TEST_DIR):
|
|
os.mkdir(TEST_DIR)
|
|
self.hass.config.whitelist_external_dirs = {TEST_DIR}
|
|
|
|
def teardown_method(self, method):
|
|
"""Stop everything that was started."""
|
|
if os.path.isfile(TEST_FILE):
|
|
os.remove(TEST_FILE)
|
|
os.rmdir(TEST_DIR)
|
|
self.hass.stop()
|
|
|
|
def test_invalid_path(self):
|
|
"""Test that an invalid path is caught."""
|
|
config = {"sensor": {"platform": "folder", CONF_FOLDER_PATHS: "invalid_path"}}
|
|
assert setup_component(self.hass, "sensor", config)
|
|
assert len(self.hass.states.entity_ids()) == 0
|
|
|
|
def test_valid_path(self):
|
|
"""Test for a valid path."""
|
|
create_file(TEST_FILE)
|
|
config = {"sensor": {"platform": "folder", CONF_FOLDER_PATHS: TEST_DIR}}
|
|
assert setup_component(self.hass, "sensor", config)
|
|
assert len(self.hass.states.entity_ids()) == 1
|
|
state = self.hass.states.get("sensor.test_folder")
|
|
assert state.state == "0.0"
|
|
assert state.attributes.get("number_of_files") == 1
|