import <nixpkgs/nixos/tests/make-test-python.nix> ({ pkgs, lib, ... }:
let
+ deviceIDFilename = "/tmp/syncthing-auto-register-test-device-ids.nix";
configuration = pkgs.writeText "configuration.nix" ''
{ pkgs, ... }: {
imports = [
openDefaultPorts = true;
autoRegister = {
enable = true;
- path = "/tmp/syncthing-auto-register-test-device-ids.nix";
+ path = "${deviceIDFilename}";
};
};
environment.systemPackages = with pkgs; [ nix ];
{
imports = [
${configuration}
- /tmp/syncthing-auto-register-test-device-ids.nix
+ ${deviceIDFilename}
];
}
'';
};
testScript = ''
+ import os
+
+
def setConfig(machine, config):
machine.copy_from_host(config, "/etc/nixos/configuration.nix")
"${configurationWithDeviceIDs}"
)
+ hostDeviceIDFilename = os.path.join(
+ os.environ["out"],
+ os.path.basename("${deviceIDFilename}"),
+ )
+
a.wait_for_unit("syncthing-autoregister.service")
setConfig(a, configurationWithDeviceIDs)
verifyDeviceIDSet(a, "a")
+ a.copy_from_vm("${deviceIDFilename}")
+
+ b.copy_from_host(
+ hostDeviceIDFilename, "${deviceIDFilename}"
+ )
+ b.succeed("chown syncthing ${deviceIDFilename}")
+ setConfig(b, configurationWithDeviceIDs)
+ verifyDeviceIDSet(b, "a")
'';
})