python3Packages.xknx: 1.1.0 -> 1.2.0
[NixPkgs.git] / nixos / tests / btrbk-section-order.nix
blob20f1afcf80ec770400e13eab99df6aa8834d915a
1 # This tests validates the order of generated sections that may contain
2 # other sections.
3 # When a `volume` section has both `subvolume` and `target` children,
4 # `target` must go before `subvolume`. Otherwise, `target` will become
5 # a child of the last `subvolume` instead of `volume`, due to the
6 # order-sensitive config format.
8 # Issue: https://github.com/NixOS/nixpkgs/issues/195660
9 import ./make-test-python.nix ({ lib, pkgs, ... }: {
10   name = "btrbk-section-order";
11   meta.maintainers = with lib.maintainers; [ oxalica ];
13   nodes.machine = { ... }: {
14     services.btrbk.instances.local = {
15       onCalendar = null;
16       settings = {
17         timestamp_format = "long";
18         target."ssh://global-target/".ssh_user = "root";
19         volume."/btrfs" = {
20           snapshot_dir = "/volume-snapshots";
21           target."ssh://volume-target/".ssh_user = "root";
22           subvolume."@subvolume" = {
23             snapshot_dir = "/subvolume-snapshots";
24             target."ssh://subvolume-target/".ssh_user = "root";
25           };
26         };
27       };
28     };
29   };
31   testScript = ''
32     machine.wait_for_unit("basic.target")
33     got = machine.succeed("cat /etc/btrbk/local.conf")
34     expect = """
35     backend btrfs-progs-sudo
36     timestamp_format long
37     target ssh://global-target/
38      ssh_user root
39     volume /btrfs
40      snapshot_dir /volume-snapshots
41      target ssh://volume-target/
42       ssh_user root
43      subvolume @subvolume
44       snapshot_dir /subvolume-snapshots
45       target ssh://subvolume-target/
46        ssh_user root
47     """.strip()
48     print(got)
49     assert got == expect
50   '';