diff options
| author | Andy Chun @noneucat <andy@lolc.at> | 2022-11-30 22:18:05 -0800 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2022-12-04 16:34:02 +0000 |
| commit | ffec708fbf96b150fd4c6e80967740582f1af34c (patch) | |
| tree | ff1a42a8579583eb42f099727fbb3b99ea249da6 | |
| parent | nixos/grocy: set storage path correctly in patch (diff) | |
| download | nixpkgs-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.nix | 26 |
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() ''; }) |
