these 2 derivations will be built: /nix/store/sczkciwdmsi99i9l066hflhl4hps0zvf-python3-3.14.7-env.drv /nix/store/yxraisiahlrsb8pwgzvb2s684h8lv14y-zerotier-tools-pytest.drv building '/nix/store/sczkciwdmsi99i9l066hflhl4hps0zvf-python3-3.14.7-env.drv' on 'ssh-ng://builder@build01.clan.lol' building '/nix/store/sczkciwdmsi99i9l066hflhl4hps0zvf-python3-3.14.7-env.drv' python3-3.14.7-env> structuredAttrs is enabled python3-3.14.7-env> created 246 symlinks in user environment building '/nix/store/yxraisiahlrsb8pwgzvb2s684h8lv14y-zerotier-tools-pytest.drv' on 'ssh-ng://builder@build01.clan.lol' building '/nix/store/yxraisiahlrsb8pwgzvb2s684h8lv14y-zerotier-tools-pytest.drv' zerotier-tools-pytest> Running pytest... zerotier-tools-pytest> ============================= test session starts ============================== zerotier-tools-pytest> platform linux -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0 -- /nix/store/0rgcisf785gpmpam5vn3q634kn9q3adx-python3-3.14.7-env/bin/python zerotier-tools-pytest> cachedir: .pytest_cache zerotier-tools-pytest> rootdir: /build/src zerotier-tools-pytest> configfile: pyproject.toml zerotier-tools-pytest> collected 24 items zerotier-tools-pytest> zerotier-tools-pytest> tests/test_generate.py::TestIdentity::test_from_secret_file_parses_node_id PASSED [ 4%] zerotier-tools-pytest> tests/test_generate.py::TestIdentity::test_from_secret_file_preserves_private PASSED [ 8%] zerotier-tools-pytest> tests/test_generate.py::TestIdentity::test_from_secret_file_agrees_with_directory_constructor PASSED [ 12%] zerotier-tools-pytest> tests/test_generate.py::TestComputeZerotierIp::test_golden_values PASSED [ 16%] zerotier-tools-pytest> tests/test_generate.py::TestComputeZerotierIp::test_different_networks_yield_different_ips PASSED [ 20%] zerotier-tools-pytest> tests/test_generate.py::TestComputeZerotierIp::test_embeds_network_and_node PASSED [ 25%] zerotier-tools-pytest> tests/test_generate.py::TestComputeZerotierIp::test_rejects_short_network_id PASSED [ 29%] zerotier-tools-pytest> tests/test_generate.py::TestComputeZerotierIp::test_rejects_long_network_id PASSED [ 33%] zerotier-tools-pytest> tests/test_generate.py::TestCreateNetworkId::test_format PASSED [ 37%] zerotier-tools-pytest> tests/test_generate.py::TestCreateNetworkId::test_unique PASSED [ 41%] zerotier-tools-pytest> tests/test_generate.py::TestCreateNetworkId::test_rejects_zero_suffix PASSED [ 45%] zerotier-tools-pytest> tests/test_generate.py::TestCliNetworkMode::test_generates_identity_network_and_ip PASSED [ 50%] zerotier-tools-pytest> tests/test_generate.py::TestCliIdentityMode::test_generates_identity_and_derives_ip PASSED [ 54%] zerotier-tools-pytest> tests/test_generate.py::TestCliIdentityMode::test_fails_without_network_id_file PASSED [ 58%] zerotier-tools-pytest> tests/test_generate.py::TestCliComputeIpMode::test_writes_correct_output PASSED [ 62%] zerotier-tools-pytest> tests/test_generate.py::TestCliComputeIpMode::test_does_not_overwrite_identity PASSED [ 66%] zerotier-tools-pytest> tests/test_generate.py::TestCliComputeIpMode::test_fails_without_network_id_file PASSED [ 70%] zerotier-tools-pytest> tests/test_generate.py::TestCliIdentityOnlyMode::test_generates_identity_without_ip PASSED [ 75%] zerotier-tools-pytest> tests/test_generate.py::TestCliIdentityOnlyMode::test_does_not_require_ip PASSED [ 79%] zerotier-tools-pytest> tests/test_generate.py::TestCliIdentityOnlyMode::test_fails_without_identity_secret PASSED [ 83%] zerotier-tools-pytest> tests/test_generate.py::TestCliNetworkIdMode::test_derives_network_id_from_identity PASSED [ 87%] zerotier-tools-pytest> tests/test_generate.py::TestCliNetworkIdMode::test_does_not_require_ip PASSED [ 91%] zerotier-tools-pytest> tests/test_generate.py::TestCliNetworkIdMode::test_fails_without_identity_secret_file PASSED [ 95%] zerotier-tools-pytest> tests/test_generate.py::TestCliNetworkIdMode::test_fails_without_network_id PASSED [100%] zerotier-tools-pytest> zerotier-tools-pytest> ============================== 24 passed in 3.09s ============================== post-build step Upload to niks3: ok time=2026-08-27T20:04:57.707Z level=INFO msg="Uploading 0 paths to niks3.clan.lol (1 already cached)" time=2026-08-27T20:04:58.254Z level=INFO msg="Uploading 1 narinfos" time=2026-08-27T20:04:59.204Z level=INFO msg="Upload complete. (1.562s)"