about summary refs log tree commit diff
path: root/nixos/tests
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2022-12-04 17:28:07 +0100
committerGitHub <noreply@github.com>2022-12-04 17:28:07 +0100
commit331d854662518444611d144a43495636c175b06f (patch)
tree94a0af8f114873f4cc1cd0726093d7dcc7e0f8f2 /nixos/tests
parent5b8893d0c36504c1c1c9840183af9bd2bfab5a1b (diff)
parentf8f19f84c6b3d0b2e34c7ba78f46698f9334de50 (diff)
Merge pull request #203874 from noneucat/fix/grocy/storage
nixos/grocy: fix file uploads
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/grocy.nix26
1 files changed, 26 insertions, 0 deletions
diff --git a/nixos/tests/grocy.nix b/nixos/tests/grocy.nix
index fe0ddd341486b..48bbc9f7d3fa2 100644
--- a/nixos/tests/grocy.nix
+++ b/nixos/tests/grocy.nix
@@ -14,6 +14,9 @@ import ./make-test-python.nix ({ pkgs, ... }: {
   };
 
   testScript = ''
+    from base64 import b64encode
+    from urllib.parse import quote
+
     machine.start()
     machine.wait_for_open_port(80)
     machine.wait_for_unit("multi-user.target")
@@ -42,6 +45,29 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     machine.succeed("curl -sSI http://localhost/api/tasks 2>&1 | grep '401 Unauthorized'")
 
+    file_name = "test.txt"
+    file_name_base64 = b64encode(file_name.encode('ascii')).decode('ascii')
+    file_name_base64_urlencode = quote(file_name_base64)
+
+    machine.succeed(
+        f"echo Sample equipment manual > /tmp/{file_name}"
+    )
+
+    machine.succeed(
+        f"curl -sSf -X 'PUT' -b 'grocy_session={cookie}' "
+        + f" 'http://localhost/api/files/equipmentmanuals/{file_name_base64_urlencode}' "
+        + "  --header 'Accept: */*' "
+        + "  --header 'Content-Type: application/octet-stream' "
+        + f" --data-binary '@/tmp/{file_name}' "
+    )
+
+    machine.succeed(
+        f"curl -sSf -X 'GET' -b 'grocy_session={cookie}' "
+        + f" 'http://localhost/api/files/equipmentmanuals/{file_name_base64_urlencode}' "
+        + "  --header 'Accept: application/octet-stream' "
+        + f" | cmp /tmp/{file_name}"
+    )
+
     machine.shutdown()
   '';
 })