nixops_unstable: Fix tests attribute

The .overrideAttrs part is ok now, but a "passthru' workaround is
necessary now. See https://github.com/NixOS/nixpkgs/pull/247520

Changed files
+12 -12
nixos
tests
nixops
pkgs
applications
networking
cluster
nixops
+5 -4
nixos/tests/nixops/default.nix
···
# inherit testsForPackage;
};
-
testsForPackage = lib.makeOverridable (args: lib.recurseIntoAttrs {
legacyNetwork = testLegacyNetwork args;
-
});
-
testLegacyNetwork = { nixopsPkg }: pkgs.nixosTest ({
name = "nixops-legacy-network";
nodes = {
deployer = { config, lib, nodes, pkgs, ... }: {
···
chmod 0400 ~/.ssh/id_ed25519
'';
serverNetworkJSON = pkgs.writeText "server-network.json"
-
(builtins.toJSON nodes.server.config.system.build.networkConfig);
in
''
import shlex
···
# inherit testsForPackage;
};
+
testsForPackage = args: lib.recurseIntoAttrs {
legacyNetwork = testLegacyNetwork args;
+
passthru.override = args': testsForPackage (args // args');
+
};
+
testLegacyNetwork = { nixopsPkg, ... }: pkgs.nixosTest ({
name = "nixops-legacy-network";
nodes = {
deployer = { config, lib, nodes, pkgs, ... }: {
···
chmod 0400 ~/.ssh/id_ed25519
'';
serverNetworkJSON = pkgs.writeText "server-network.json"
+
(builtins.toJSON nodes.server.system.build.networkConfig);
in
''
import shlex
+7 -8
pkgs/applications/networking/cluster/nixops/default.nix
···
}
).python;
-
pkg = interpreter.pkgs.nixops.withPlugins(ps: [
ps.nixops-aws
ps.nixops-digitalocean
ps.nixops-encrypted-links
···
ps.nixopsvbox
ps.nixops-virtd
ps.nixops-hetznercloud
-
]) // rec {
-
# Workaround for https://github.com/NixOS/nixpkgs/issues/119407
-
# TODO after #1199407: Use .overrideAttrs(pkg: old: { passthru.tests = .....; })
-
tests = nixosTests.nixops.unstable.override { nixopsPkg = pkg; };
-
# Not strictly necessary, but probably expected somewhere; part of the workaround:
-
passthru.tests = tests;
-
};
in pkg
···
}
).python;
+
pkg = (interpreter.pkgs.nixops.withPlugins(ps: [
ps.nixops-aws
ps.nixops-digitalocean
ps.nixops-encrypted-links
···
ps.nixopsvbox
ps.nixops-virtd
ps.nixops-hetznercloud
+
])).overrideAttrs (finalAttrs: prevAttrs: {
+
passthru = prevAttrs.passthru or {} // {
+
tests = prevAttrs.passthru.tests or {} //
+
nixosTests.nixops.unstable.passthru.override { nixopsPkg = pkg; };
+
};
+
});
in pkg