nixos/tests/openldap: make openldap test auto-callable

The NixOS manual documents that you can invoke every tests using

    nix-build path/to/nixos/tests/test.nix

which was not the case for openldap since it is not autocallable, but
requires pkgs and system as arguments. Usually, make-test-pythons.nix
takes care of this if it is imported at the top-level, but since
openldap.nix contains multiple tests, this was not the case.

This is however easily fixed by:

* Adding default values for the pkgs and system arguments based on the
  definition in make-test-python.nix
* Passing pkgs and system explicitly to make-test-python.nix to ensure
  the pkgs and system values passed from all-tests.nix are used.
This commit is contained in:
sternenseemann 2021-02-18 12:56:58 +01:00
parent 6b1057b452
commit 281a2401b2

View file

@ -1,4 +1,9 @@
{ pkgs, system ? builtins.currentSystem, ... }: let
{ pkgs ? (import ../.. { inherit system; config = { }; })
, system ? builtins.currentSystem
, ...
}:
let
dbContents = ''
dn: dc=example
objectClass: domain
@ -16,7 +21,7 @@
'';
in {
# New-style configuration
current = import ./make-test-python.nix {
current = import ./make-test-python.nix ({ pkgs, ... }: {
inherit testScript;
name = "openldap";
@ -53,10 +58,10 @@ in {
declarativeContents."dc=example" = dbContents;
};
};
};
}) { inherit pkgs system; };
# Old-style configuration
oldOptions = import ./make-test-python.nix {
oldOptions = import ./make-test-python.nix ({ pkgs, ... }: {
inherit testScript;
name = "openldap";
@ -72,10 +77,10 @@ in {
declarativeContents."dc=example" = dbContents;
};
};
};
}) { inherit system pkgs; };
# Manually managed configDir, for example if dynamic config is essential
manualConfigDir = import ./make-test-python.nix {
manualConfigDir = import ./make-test-python.nix ({ pkgs, ... }: {
name = "openldap";
machine = { pkgs, ... }: {
@ -121,5 +126,5 @@ in {
"systemctl restart openldap",
)
'' + testScript;
};
}) { inherit system pkgs; };
}