testing: migrate suggestions.sh
Change-Id: Iad28262035aa96c5ef6fa33e2a830b5fa8a9ae50
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import pytest
|
||||
from testlib.fixtures.nix import Nix
|
||||
from testlib.fixtures.file_helper import File, with_files
|
||||
|
||||
|
||||
@with_files(
|
||||
{
|
||||
"flake.nix": File("""{
|
||||
outputs = a: {
|
||||
packages.system = {
|
||||
foo = 1;
|
||||
fo1 = 1;
|
||||
fo2 = 1;
|
||||
fooo = 1;
|
||||
foooo = 1;
|
||||
fooooo = 1;
|
||||
fooooo1 = 1;
|
||||
fooooo2 = 1;
|
||||
fooooo3 = 1;
|
||||
fooooo4 = 1;
|
||||
fooooo5 = 1;
|
||||
fooooo6 = 1;
|
||||
};
|
||||
};
|
||||
}""")
|
||||
}
|
||||
)
|
||||
class TestSuggestions:
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(self, nix: Nix):
|
||||
nix.settings.add_xp_feature("nix-command", "flakes")
|
||||
nix.settings.system = "system"
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"args",
|
||||
[
|
||||
[".#fob"],
|
||||
["--impure", "--expr", "(builtins.getFlake (builtins.toPath ./.)).packages.system.fob"],
|
||||
],
|
||||
)
|
||||
def test_three_closest(self, nix: Nix, args: list[str]):
|
||||
err = nix.nix(["build", *args]).run().expect(1).stderr_s
|
||||
assert "Did you mean one of fo1, fo2, foo or fooo?" in err
|
||||
|
||||
def test_only_suggest_relevant(self, nix: Nix):
|
||||
assert "Did you mean" not in nix.nix(["build", ".#bar"]).run().expect(1).stderr_s
|
||||
|
||||
def test_inactive_if_all_args_provided(self, nix: Nix):
|
||||
assert "Did you mean" not in (
|
||||
nix.nix(["build", "--impure", "--expr", "({ foo }: foo) { foo = 1; fob = 2; }"])
|
||||
.run()
|
||||
.expect(1)
|
||||
.stderr_s
|
||||
)
|
||||
|
||||
def test_expr(self, nix: Nix):
|
||||
assert "Did you mean foo?" in (
|
||||
nix.nix(["build", "--impure", "--expr", "({ foo ? 1 }: foo) { fob = 2; }"])
|
||||
.run()
|
||||
.expect(1)
|
||||
.stderr_s
|
||||
)
|
||||
Reference in New Issue
Block a user