44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from testlib.fixtures.nix import Nix
|
|
from testlib.fixtures.file_helper import with_files, File
|
|
from testlib.environ import environ
|
|
from testlib.utils import get_global_asset_pack
|
|
import pytest
|
|
|
|
system = environ.get("system")
|
|
|
|
files = get_global_asset_pack("simple-drv") | {
|
|
"flake.nix": File(f"""{{
|
|
outputs = {{self}}: {{
|
|
bundlers.{system} = rec {{
|
|
simple = drv:
|
|
if drv?type && drv.type == "derivation"
|
|
then drv
|
|
else self.packages.{system}.default;
|
|
default = simple;
|
|
}};
|
|
packages.{system}.default = import ./simple.nix;
|
|
apps.{system}.default = {{
|
|
type = "app";
|
|
program = "${{import ./simple.nix}}/hello";
|
|
}};
|
|
}};
|
|
}}""")
|
|
}
|
|
|
|
|
|
@with_files(files)
|
|
@pytest.mark.parametrize(
|
|
("bundler", "attr"),
|
|
[
|
|
(".#", ".#"),
|
|
(f".#bundlers.{system}.default", f".#packages.{system}.default"),
|
|
(f".#bundlers.{system}.simple", f".#packages.{system}.default"),
|
|
(f".#bundlers.{system}.default", f".#apps.{system}.default"),
|
|
(f".#bundlers.{system}.simple", f".#apps.{system}.default"),
|
|
],
|
|
)
|
|
def test_bundle(nix: Nix, bundler: str, attr: str):
|
|
nix.settings.add_xp_feature("nix-command", "flakes")
|
|
nix.nix(["build", ".#"]).run().ok()
|
|
nix.nix(["bundle", "--bundler", bundler, attr]).run().ok()
|