forked from mirrors/nixpkgs
56103f5f70
The version checker fails with an ERROR message, so asserting on that isn't useful for us since 0.110.2.
97 lines
2.4 KiB
Nix
97 lines
2.4 KiB
Nix
import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|
|
|
{
|
|
name = "evcc";
|
|
meta.maintainers = with lib.maintainers; [ hexa ];
|
|
|
|
nodes = {
|
|
machine = { config, ... }: {
|
|
services.evcc = {
|
|
enable = true;
|
|
settings = {
|
|
network = {
|
|
schema = "http";
|
|
host = "localhost";
|
|
port = 7070;
|
|
};
|
|
|
|
log = "info";
|
|
|
|
site = {
|
|
title = "NixOS Test";
|
|
meters = {
|
|
grid = "grid";
|
|
pv = "pv";
|
|
};
|
|
};
|
|
|
|
meters = [ {
|
|
type = "custom";
|
|
name = "grid";
|
|
power = {
|
|
source = "script";
|
|
cmd = "/bin/sh -c 'echo -4500'";
|
|
};
|
|
} {
|
|
type = "custom";
|
|
name = "pv";
|
|
power = {
|
|
source = "script";
|
|
cmd = "/bin/sh -c 'echo 7500'";
|
|
};
|
|
} ];
|
|
|
|
chargers = [ {
|
|
name = "dummy-charger";
|
|
type = "custom";
|
|
status = {
|
|
source = "script";
|
|
cmd = "/bin/sh -c 'echo charger status F'";
|
|
};
|
|
enabled = {
|
|
source = "script";
|
|
cmd = "/bin/sh -c 'echo charger enabled state false'";
|
|
};
|
|
enable = {
|
|
source = "script";
|
|
cmd = "/bin/sh -c 'echo set charger enabled state true'";
|
|
};
|
|
maxcurrent = {
|
|
source = "script";
|
|
cmd = "/bin/sh -c 'echo set charger max current 7200'";
|
|
};
|
|
} ];
|
|
|
|
loadpoints = [ {
|
|
title = "Dummy";
|
|
charger = "dummy-charger";
|
|
} ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
start_all()
|
|
|
|
machine.wait_for_unit("evcc.service")
|
|
machine.wait_for_open_port(7070)
|
|
|
|
with subtest("Check package version propagates into frontend"):
|
|
machine.fail(
|
|
"curl --fail http://localhost:7070 | grep '0.0.1-alpha'"
|
|
)
|
|
machine.succeed(
|
|
"curl --fail http://localhost:7070 | grep '${pkgs.evcc.version}'"
|
|
)
|
|
|
|
with subtest("Check journal for errors"):
|
|
_, output = machine.execute("journalctl -o cat -u evcc.service")
|
|
assert "FATAL" not in output
|
|
|
|
with subtest("Check systemd hardening"):
|
|
_, output = machine.execute("systemd-analyze security evcc.service | grep -v '✓'")
|
|
machine.log(output)
|
|
'';
|
|
})
|