summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Chun @noneucat <andy@lolc.at>2022-11-30 22:18:05 -0800
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2022-12-04 16:34:02 +0000
commitffec708fbf96b150fd4c6e80967740582f1af34c (patch)
treeff1a42a8579583eb42f099727fbb3b99ea249da6
parentnixos/grocy: set storage path correctly in patch (diff)
downloadnixpkgs-origin/backport-203874-to-release-22.05.tar.gz
nixos/grocy: add a basic smoke test for file uploadsorigin/backport-203874-to-release-22.05
(cherry picked from commit f8f19f84c6b3d0b2e34c7ba78f46698f9334de50)
-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 fe0ddd341486..48bbc9f7d3fa 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()
'';
})