summary refs log tree commit diff
path: root/nixos/tests/tiddlywiki.nix
diff options
context:
space:
mode:
authorx123 <x123@users.noreply.github.com>2019-12-03 00:20:01 +0100
committerx123 <x123@users.noreply.github.com>2019-12-03 00:20:01 +0100
commit2ad9a627de92a470e971d5cf88a8ec4db7c31043 (patch)
tree8e9c7a60b96c7b8a3fdb042227d9049854750f88 /nixos/tests/tiddlywiki.nix
parent9159afd4593ed298e9a398a350472effdcb16c58 (diff)
downloadnixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.tar
nixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.tar.gz
nixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.tar.bz2
nixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.tar.lz
nixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.tar.xz
nixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.tar.zst
nixpkgs-2ad9a627de92a470e971d5cf88a8ec4db7c31043.zip
nixos/tests/tiddlywiki: port to python
Diffstat (limited to 'nixos/tests/tiddlywiki.nix')
-rw-r--r--nixos/tests/tiddlywiki.nix79
1 files changed, 42 insertions, 37 deletions
diff --git a/nixos/tests/tiddlywiki.nix b/nixos/tests/tiddlywiki.nix
index 4a2014a4ec9..00b8c9862ac 100644
--- a/nixos/tests/tiddlywiki.nix
+++ b/nixos/tests/tiddlywiki.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ ... }: {
+import ./make-test-python.nix ({ ... }: {
   name = "tiddlywiki";
   nodes = {
     default = {
@@ -20,48 +20,53 @@ import ./make-test.nix ({ ... }: {
     };
   };
 
-  testScript = ''
-    startAll;
+  testScript =
+    ''
+      start_all()
 
-    subtest "by default works without configuration", sub {
-      $default->waitForUnit("tiddlywiki.service");
-    };
+      with subtest("by default works without configuration"):
+          default.wait_for_unit("tiddlywiki.service")
 
-    subtest "by default available on port 8080 without auth", sub {
-      $default->waitForUnit("tiddlywiki.service");
-      $default->waitForOpenPort(8080);
-      $default->succeed("curl --fail 127.0.0.1:8080");
-    };
+      with subtest("by default available on port 8080 without auth"):
+          default.wait_for_unit("tiddlywiki.service")
+          default.wait_for_open_port(8080)
+          # we output to /dev/null here to avoid a python UTF-8 decode error
+          # but the check will still fail if the service doesn't respond
+          default.succeed("curl --fail -o /dev/null 127.0.0.1:8080")
 
-    subtest "by default creates empty wiki", sub {
-      $default->succeed("test -f /var/lib/tiddlywiki/tiddlywiki.info");
-    };
+      with subtest("by default creates empty wiki"):
+          default.succeed("test -f /var/lib/tiddlywiki/tiddlywiki.info")
 
-    subtest "configured on port 3000 with basic auth", sub {
-      $configured->waitForUnit("tiddlywiki.service");
-      $configured->waitForOpenPort(3000);
-      $configured->fail("curl --fail 127.0.0.1:3000");
-      $configured->succeed("curl --fail 127.0.0.1:3000 --user somelogin:somesecret");
-    };
+      with subtest("configured on port 3000 with basic auth"):
+          configured.wait_for_unit("tiddlywiki.service")
+          configured.wait_for_open_port(3000)
+          configured.fail("curl --fail -o /dev/null 127.0.0.1:3000")
+          configured.succeed(
+              "curl --fail -o /dev/null 127.0.0.1:3000 --user somelogin:somesecret"
+          )
 
-    subtest "configured with different wikifolder", sub {
-      $configured->succeed("test -f /var/lib/tiddlywiki/tiddlywiki.info");
-    };
+      with subtest("configured with different wikifolder"):
+          configured.succeed("test -f /var/lib/tiddlywiki/tiddlywiki.info")
 
-    subtest "restart preserves changes", sub {
-      # given running wiki
-      $default->waitForUnit("tiddlywiki.service");
-      # with some changes
-      $default->succeed("curl --fail --request PUT --header 'X-Requested-With:TiddlyWiki' --data '{ \"title\": \"title\", \"text\": \"content\" }' --url 127.0.0.1:8080/recipes/default/tiddlers/somepage ");
-      $default->succeed("sleep 2"); # server syncs to filesystem on timer
+      with subtest("restart preserves changes"):
+          # given running wiki
+          default.wait_for_unit("tiddlywiki.service")
+          # with some changes
+          default.succeed(
+              'curl --fail --request PUT --header \'X-Requested-With:TiddlyWiki\' \
+              --data \'{ "title": "title", "text": "content" }\' \
+              --url 127.0.0.1:8080/recipes/default/tiddlers/somepage '
+          )
+          default.succeed("sleep 2")
 
-      # when wiki is cycled
-      $default->systemctl("restart tiddlywiki.service");
-      $default->waitForUnit("tiddlywiki.service");
-      $default->waitForOpenPort(8080);
+          # when wiki is cycled
+          default.systemctl("restart tiddlywiki.service")
+          default.wait_for_unit("tiddlywiki.service")
+          default.wait_for_open_port(8080)
 
-      # the change is preserved
-      $default->succeed("curl --fail 127.0.0.1:8080/recipes/default/tiddlers/somepage");
-    };
-  '';
+          # the change is preserved
+          default.succeed(
+              "curl --fail -o /dev/null 127.0.0.1:8080/recipes/default/tiddlers/somepage"
+          )
+    '';
 })