mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 08:00:06 +01:00
example fix
This commit is contained in:
parent
2f2a3be87d
commit
164beed30d
4 changed files with 74 additions and 56 deletions
|
|
@ -64,19 +64,20 @@ with lib; let
|
|||
config = definitions."${ref}".config;
|
||||
});
|
||||
|
||||
submoduleWithMergeOf = ref: mergeKey: types.submodule ({name, ...}: let
|
||||
convertName = name:
|
||||
if definitions."${ref}".options.${mergeKey}.type == types.int
|
||||
then toInt name
|
||||
else name;
|
||||
in {
|
||||
options = definitions."${ref}".options;
|
||||
config =
|
||||
definitions."${ref}".config
|
||||
// {
|
||||
${mergeKey} = mkOverride 1002 (convertName name);
|
||||
};
|
||||
});
|
||||
submoduleWithMergeOf = ref: mergeKey:
|
||||
types.submodule ({name, ...}: let
|
||||
convertName = name:
|
||||
if definitions."${ref}".options.${mergeKey}.type == types.int
|
||||
then toInt name
|
||||
else name;
|
||||
in {
|
||||
options = definitions."${ref}".options;
|
||||
config =
|
||||
definitions."${ref}".config
|
||||
// {
|
||||
${mergeKey} = mkOverride 1002 (convertName name);
|
||||
};
|
||||
});
|
||||
|
||||
submoduleForDefinition = ref: resource: kind: group: version:
|
||||
types.submodule ({name, ...}: {
|
||||
|
|
|
|||
|
|
@ -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 = [];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,13 @@ with lib; let
|
|||
|
||||
# eval without checking
|
||||
evaled' = kubenix.evalModules {
|
||||
check = false;
|
||||
inherit modules;
|
||||
modules =
|
||||
modules
|
||||
++ [
|
||||
{
|
||||
_module.args.check = false;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# test configuration
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue