import ./make-test-python.nix ( { pkgs, lib, ... }: { name = "systemd-userdbd"; nodes.machine = { config, pkgs, ... }: { services.userdbd.enable = true; users.users.test-user-nss = { isNormalUser = true; }; environment.etc."userdb/test-user-dropin.user".text = builtins.toJSON { userName = "test-user-dropin"; }; environment.systemPackages = with pkgs; [ libvarlink ]; }; testScript = '' import json from shlex import quote def getUserRecord(name): Interface = "unix:/run/systemd/userdb/io.systemd.Multiplexer/io.systemd.UserDatabase" payload = json.dumps({ "service": "io.systemd.Multiplexer", "userName": name }) return json.loads(machine.succeed(f"varlink call {Interface}.GetUserRecord {quote(payload)}")) machine.wait_for_unit("systemd-userdbd.socket") getUserRecord("test-user-nss") getUserRecord("test-user-dropin") ''; } )