example fix

This commit is contained in:
GTrunSec 2022-04-02 13:28:07 -07:00
parent 2f2a3be87d
commit 164beed30d
No known key found for this signature in database
GPG key ID: 2368FAFA4ABDD2A0
4 changed files with 74 additions and 56 deletions

View file

@ -1,17 +1,23 @@
{ lib, config, pkgs, ... }:
with lib;
let
{
lib,
config,
pkgs,
...
}:
with lib; let
testing = config.testing;
cfg = testing.driver.kubetest;
kubetest = import ./kubetestdrv.nix { inherit pkgs; };
kubetest = import ./kubetestdrv.nix {inherit pkgs;};
pythonEnv = pkgs.python38.withPackages (ps: with ps; [
pytest
kubetest
kubernetes
] ++ cfg.extraPackages);
pythonEnv = pkgs.python38.withPackages (ps:
with ps;
[
pytest
kubetest
kubernetes
]
++ cfg.extraPackages);
toTestScript = t:
if isString t.script
@ -23,33 +29,34 @@ let
else t.script;
tests = let
# make sure tests are prefixed so that alphanumerical
# sorting reproduces them in the same order as they
# have been declared in the list.
seive = t: t.script != null && t.enabled;
allEligibleTests = filter seive testing.tests;
listLengthPadding = builtins.length (
lib.stringToCharacters (
builtins.toString (
builtins.length allEligibleTests)));
op =
(i: t: {
path = toTestScript t;
name = let
prefix = lib.fixedWidthNumber listLengthPadding i;
in "${prefix}_${t.name}_test.py";
});
in pkgs.linkFarm "${testing.name}-tests" (
lib.imap0 op allEligibleTests
);
# make sure tests are prefixed so that alphanumerical
# sorting reproduces them in the same order as they
# have been declared in the list.
seive = t: t.script != null && t.enabled;
allEligibleTests = filter seive testing.tests;
listLengthPadding = builtins.length (
lib.stringToCharacters (
builtins.toString (
builtins.length allEligibleTests
)
)
);
op = i: t: {
path = toTestScript t;
name = let
prefix = lib.fixedWidthNumber listLengthPadding i;
in "${prefix}_${t.name}_test.py";
};
in
pkgs.linkFarm "${testing.name}-tests" (
lib.imap0 op allEligibleTests
);
testScript = pkgs.writeScript "test-${testing.name}.sh" ''
#!/usr/bin/env bash
${pythonEnv}/bin/pytest -p no:cacheprovider ${tests} $@
'';
in
{
in {
options.testing.driver.kubetest = {
defaultHeader = mkOption {
type = types.lines;
@ -62,7 +69,7 @@ in
extraPackages = mkOption {
type = types.listOf types.package;
description = "Extra packages to pass to tests";
default = [ ];
default = [];
};
};