X-Git-Url: http://git.scottworley.com/syncthing-autoregister/blobdiff_plain/2475b5344ca33d7aad5b57f42310994d60b80ee3..1d5d76e472df2f4d24f153f0cd381d7b7d579f91:/tests/automatic-enrollment.nix?ds=inline diff --git a/tests/automatic-enrollment.nix b/tests/automatic-enrollment.nix index 1a6b360..951a415 100644 --- a/tests/automatic-enrollment.nix +++ b/tests/automatic-enrollment.nix @@ -1,5 +1,6 @@ import ({ pkgs, lib, ... }: let + deviceIDFilename = "/tmp/syncthing-auto-register-test-device-ids.nix"; configuration = pkgs.writeText "configuration.nix" '' { pkgs, ... }: { imports = [ @@ -11,7 +12,7 @@ import ({ pkgs, lib, ... }: openDefaultPorts = true; autoRegister = { enable = true; - path = "/tmp/syncthing-auto-register-test-device-ids.nix"; + path = "${deviceIDFilename}"; }; }; environment.systemPackages = with pkgs; [ nix ]; @@ -34,7 +35,7 @@ import ({ pkgs, lib, ... }: { imports = [ ${configuration} - /tmp/syncthing-auto-register-test-device-ids.nix + ${deviceIDFilename} ]; } ''; @@ -48,6 +49,9 @@ import ({ pkgs, lib, ... }: }; testScript = '' + import os + + def setConfig(machine, config): machine.copy_from_host(config, "/etc/nixos/configuration.nix") @@ -59,6 +63,21 @@ import ({ pkgs, lib, ... }: ) + def getDeviceFile(machine): + machine.copy_from_vm("${deviceIDFilename}") + + + def putDeviceFile(machine): + hostDeviceIDFilename = os.path.join( + os.environ["out"], + os.path.basename("${deviceIDFilename}"), + ) + machine.copy_from_host( + hostDeviceIDFilename, "${deviceIDFilename}" + ) + machine.succeed("chown syncthing ${deviceIDFilename}") + + configurationWithDeviceIDs = ( "${configurationWithDeviceIDs}" ) @@ -66,5 +85,13 @@ import ({ pkgs, lib, ... }: a.wait_for_unit("syncthing-autoregister.service") setConfig(a, configurationWithDeviceIDs) verifyDeviceIDSet(a, "a") + getDeviceFile(a) + + putDeviceFile(b) + setConfig(b, configurationWithDeviceIDs) + verifyDeviceIDSet(b, "a") + b.wait_for_unit("syncthing-autoregister.service") + verifyDeviceIDSet(b, "a") + verifyDeviceIDSet(b, "b") ''; })