summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeo Maroni <git@em0lar.de>2021-08-23 08:58:16 +0200
committerLeo Maroni <git@em0lar.de>2021-08-28 12:22:52 +0200
commit21482724329dc52a307a3808a9ef5265a6e7b29e (patch)
treeda50a6a332bb074764d966e140fbb218caa31593
parent2689bd2472f25285db834c474344b7a925941f53 (diff)
downloadnixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.tar
nixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.tar.gz
nixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.tar.bz2
nixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.tar.lz
nixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.tar.xz
nixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.tar.zst
nixpkgs-21482724329dc52a307a3808a9ef5265a6e7b29e.zip
nixos/paperless-ng: fix web file upload
-rw-r--r--nixos/modules/services/misc/paperless-ng.nix3
-rw-r--r--nixos/tests/paperless-ng.nix14
2 files changed, 15 insertions, 2 deletions
diff --git a/nixos/modules/services/misc/paperless-ng.nix b/nixos/modules/services/misc/paperless-ng.nix
index 9eaf8fa8859..03773510018 100644
--- a/nixos/modules/services/misc/paperless-ng.nix
+++ b/nixos/modules/services/misc/paperless-ng.nix
@@ -283,6 +283,9 @@ in
         PATH = mkForce cfg.package.path;
         PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ng/src";
       };
+      # Allow the web interface to access the private /tmp directory of the server.
+      # This is required to support uploading files via the web interface.
+      unitConfig.JoinsNamespaceOf = "paperless-ng-server.service";
       # Bind to `paperless-ng-server` so that the web server never runs
       # during migrations
       bindsTo = [ "paperless-ng-server.service" ];
diff --git a/nixos/tests/paperless-ng.nix b/nixos/tests/paperless-ng.nix
index d8aafc2a08f..a4b2f348ec3 100644
--- a/nixos/tests/paperless-ng.nix
+++ b/nixos/tests/paperless-ng.nix
@@ -25,12 +25,22 @@ import ./make-test-python.nix ({ lib, ... }: {
         # Wait until server accepts connections
         machine.wait_until_succeeds("curl -fs localhost:28981")
 
-    with subtest("Document is consumed"):
+    with subtest("Create web test doc"):
+        machine.succeed(
+            "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
+            "-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
+        )
+        machine.wait_until_succeeds("curl -u admin:admin -F document=@/tmp/webdoc.png -fs localhost:28981/api/documents/post_document/")
+
+    with subtest("Documents are consumed"):
         machine.wait_until_succeeds(
-            "(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 1))"
+            "(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 2))"
         )
         assert "2005-10-16" in machine.succeed(
             "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[0] | .created'"
         )
+        assert "2005-10-16" in machine.succeed(
+            "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[1] | .created'"
+        )
   '';
 })