ahoy: init at 2.2.0 (#366784)
[NixPkgs.git] / nixos / tests / systemd-userdbd.nix
blob75fe469ed96390691cf6979ef7102e8d74dc35ac
1 import ./make-test-python.nix (
2   { pkgs, lib, ... }:
3   {
4     name = "systemd-userdbd";
5     nodes.machine =
6       { config, pkgs, ... }:
7       {
8         services.userdbd.enable = true;
10         users.users.test-user-nss = {
11           isNormalUser = true;
12         };
14         environment.etc."userdb/test-user-dropin.user".text = builtins.toJSON {
15           userName = "test-user-dropin";
16         };
18         environment.systemPackages = with pkgs; [ libvarlink ];
19       };
20     testScript = ''
21       import json
22       from shlex import quote
24       def getUserRecord(name):
25         Interface = "unix:/run/systemd/userdb/io.systemd.Multiplexer/io.systemd.UserDatabase"
26         payload = json.dumps({
27           "service": "io.systemd.Multiplexer",
28           "userName": name
29         })
30         return json.loads(machine.succeed(f"varlink call {Interface}.GetUserRecord {quote(payload)}"))
32       machine.wait_for_unit("systemd-userdbd.socket")
33       getUserRecord("test-user-nss")
34       getUserRecord("test-user-dropin")
35     '';
36   }