nixos/grocy: add a basic smoke test for file uploads

This commit is contained in:
Andy Chun @noneucat 2022-11-30 22:18:05 -08:00
parent 8fef1cc766
commit f8f19f84c6

View file

@ -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()
'';
})