1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import pytest
from testlib.fixtures.nix import Nix, NixDaemon


@pytest.fixture(autouse=True)
def setup(nix: Nix):
    nix.settings.add_xp_feature("nix-command")


def test_ping(nix: Nix):
    info = nix.nix(["store", "ping"]).run().ok().stderr_plain
    assert "Store URL: local" in info


def test_ping_json(nix: Nix):
    info = nix.nix(["store", "ping", "--json"]).run().ok().json()
    assert info["url"] == "local"


def test_ping_daemon(nix: Nix, daemon: NixDaemon):
    version = nix.nix(["daemon", "--version"]).run().ok().stdout_plain
    version = version.splitlines()[0].split()[-1]
    with daemon(nix) as inner:
        info = nix.nix(["store", "ping"]).run().ok().stderr_plain
        assert f"Version: {version}" in info
        info = inner.nix(["store", "ping", "--json"]).run().ok().json()
        assert info["url"] == inner.settings.store
        assert info["version"] == version


def test_ping_bad_store(nix: Nix):
    nix.settings.store = f"unix:{nix.env.dirs.home}"
    error = nix.nix(["store", "ping"]).run().expect(1).stderr_plain
    assert "could not connect" in error