82 lines
2.3 KiB
Nix
82 lines
2.3 KiB
Nix
let
|
|
normal-enabled = "username-normal-enabled";
|
|
normal-disabled = "username-normal-disabled";
|
|
system-enabled = "username-system-enabled";
|
|
system-disabled = "username-system-disabled";
|
|
passwd = "enableOptionPasswd";
|
|
in
|
|
{
|
|
name = "user-enable-option";
|
|
|
|
nodes.machine = {
|
|
users = {
|
|
groups.test-group = { };
|
|
users = {
|
|
# User is enabled (default behaviour).
|
|
${normal-enabled} = {
|
|
enable = true;
|
|
isNormalUser = true;
|
|
initialPassword = passwd;
|
|
};
|
|
|
|
# User is disabled.
|
|
${normal-disabled} = {
|
|
enable = false;
|
|
isNormalUser = true;
|
|
initialPassword = passwd;
|
|
};
|
|
|
|
# User is a system user, and is enabled.
|
|
${system-enabled} = {
|
|
enable = true;
|
|
isSystemUser = true;
|
|
initialPassword = passwd;
|
|
group = "test-group";
|
|
};
|
|
|
|
# User is a system user, and is disabled.
|
|
${system-disabled} = {
|
|
enable = false;
|
|
isSystemUser = true;
|
|
initialPassword = passwd;
|
|
group = "test-group";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
def switch_to_tty(tty_number):
|
|
machine.fail(f"pgrep -f 'agetty.*tty{tty_number}'")
|
|
machine.send_key(f"alt-f{tty_number}")
|
|
machine.wait_until_succeeds(f"[ $(fgconsole) = {tty_number} ]")
|
|
machine.wait_for_unit(f"getty@tty{tty_number}.service")
|
|
machine.wait_until_succeeds(f"pgrep -f 'agetty.*tty{tty_number}'")
|
|
|
|
machine.wait_for_unit("multi-user.target")
|
|
machine.wait_for_unit("getty@tty1.service")
|
|
|
|
with subtest("${normal-enabled} exists"):
|
|
check_fn = "id ${normal-enabled}"
|
|
machine.succeed(check_fn)
|
|
machine.wait_until_tty_matches("1", "login: ")
|
|
machine.send_chars("${normal-enabled}\n")
|
|
machine.wait_until_tty_matches("1", "Password: ")
|
|
machine.send_chars("${passwd}\n")
|
|
|
|
with subtest("${normal-disabled} does not exist"):
|
|
switch_to_tty(2)
|
|
check_fn = "id ${normal-disabled}"
|
|
machine.fail(check_fn)
|
|
|
|
with subtest("${system-enabled} exists"):
|
|
switch_to_tty(3)
|
|
check_fn = "id ${system-enabled}"
|
|
machine.succeed(check_fn)
|
|
|
|
with subtest("${system-disabled} does not exist"):
|
|
switch_to_tty(4)
|
|
check_fn = "id ${system-disabled}"
|
|
machine.fail(check_fn)
|
|
'';
|
|
}
|