1import ./make-test-python.nix (
2 { pkgs, ... }:
3
4 {
5 name = "ifm";
6 meta = with pkgs.lib.maintainers; {
7 maintainers = [ litchipi ];
8 };
9
10 nodes = {
11 server = rec {
12 services.ifm = {
13 enable = true;
14 port = 9001;
15 dataDir = "/data";
16 };
17
18 system.activationScripts.ifm-setup-dir = ''
19 mkdir -p ${services.ifm.dataDir}
20 chmod u+w,g+w,o+w ${services.ifm.dataDir}
21 '';
22 };
23 };
24
25 testScript = ''
26 start_all()
27 server.wait_for_unit("ifm.service")
28 server.wait_for_open_port(9001)
29 server.succeed("curl --fail http://localhost:9001")
30
31 server.succeed("echo \"testfile\" > testfile && shasum testfile >> checksums")
32 server.succeed("curl --fail http://localhost:9001 -X POST -F \"api=upload\" -F \"dir=\" -F \"file=@testfile\" | grep \"OK\"");
33 server.succeed("rm testfile")
34 server.succeed("curl --fail http://localhost:9001 -X POST -F \"api=download\" -F \"filename=testfile\" -F \"dir=\" --output testfile");
35 server.succeed("shasum testfile >> checksums && shasum --check checksums")
36 '';
37 }
38)