diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2022-02-14 02:10:24 +0100 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2022-02-15 23:41:52 +0100 |
commit | 32bd0aafab0076ef09a3f256f61240c05daa0f4d (patch) | |
tree | a86ae6f87d9275097e0d219a0fd2d20ac74a64b6 | |
parent | 3f8ddef902ab472c2b4d4de18123c114df3f7d2c (diff) |
nixos/tests/home-assistant: test package and components passing
There are now multiple combinations of how one can pass either extraPackages or extraComponents. We now test those passed directly to the package via an override, and those passed indirectly via the module, that ultimately results in a second override to the package.
-rw-r--r-- | nixos/tests/home-assistant.nix | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix index 6b37b8f8bf985..31f8a4bcc1981 100644 --- a/nixos/tests/home-assistant.nix +++ b/nixos/tests/home-assistant.nix @@ -40,6 +40,9 @@ in { # tests loading components by overriding the package package = (pkgs.home-assistant.override { + extraPackages = ps: with ps; [ + colorama + ]; extraComponents = [ "zha" ]; }).overrideAttrs (oldAttrs: { doInstallCheck = false; @@ -131,8 +134,18 @@ in { }; testScript = '' + import re + start_all() + # Parse the package path out of the systemd unit, as we cannot + # access the final package, that is overriden inside the module, + # by any other means. + pattern = re.compile(r"path=(?P<path>[\/a-z0-9-.]+)\/bin\/hass") + response = hass.execute("systemctl show -p ExecStart home-assistant.service")[1] + match = pattern.search(response) + package = match.group('path') + hass.wait_for_unit("home-assistant.service") with subtest("Check that YAML configuration file is in place"): @@ -141,6 +154,14 @@ in { with subtest("Check the lovelace config is copied because lovelaceConfigWritable = true"): hass.succeed("test -f ${configDir}/ui-lovelace.yaml") + with subtest("Check extraComponents and extraPackages are considered from the package"): + hass.succeed(f"grep -q 'colorama' {package}/extra_packages") + hass.succeed(f"grep -q 'zha' {package}/extra_components") + + with subtest("Check extraComponents and extraPackages are considered from the module"): + hass.succeed(f"grep -q 'psycopg2' {package}/extra_packages") + hass.succeed(f"grep -q 'wake_on_lan' {package}/extra_components") + with subtest("Check that Home Assistant's web interface and API can be reached"): hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'Home Assistant initialized in'") hass.wait_for_open_port(8123) |