diff options
author | Pavel Borzenkov <pavel@borzenkov.net> | 2021-02-23 14:23:20 +0300 |
---|---|---|
committer | Pavel Borzenkov <pavel@borzenkov.net> | 2021-03-27 14:43:33 +0300 |
commit | 58ce51ed06ee90e7abca64ebd0b88be0434b5431 (patch) | |
tree | ca97c8b68696dac09b948cce51be77b336fc1b48 /nixos/tests | |
parent | f069cdb0dce80bb91055d94cca5c0a21b48b7fcd (diff) | |
download | nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.tar nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.tar.gz nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.tar.bz2 nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.tar.lz nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.tar.xz nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.tar.zst nixpkgs-58ce51ed06ee90e7abca64ebd0b88be0434b5431.zip |
nixos/calibre-web: init module
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/calibre-web.nix | 53 |
2 files changed, 54 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 3ce71b0abe6..45c296a27db 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -49,6 +49,7 @@ in cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {}; cage = handleTest ./cage.nix {}; cagebreak = handleTest ./cagebreak.nix {}; + calibre-web = handleTest ./calibre-web.nix {}; cassandra_2_1 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_2_1; }; cassandra_2_2 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_2_2; }; cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; }; diff --git a/nixos/tests/calibre-web.nix b/nixos/tests/calibre-web.nix new file mode 100644 index 00000000000..4f73b331112 --- /dev/null +++ b/nixos/tests/calibre-web.nix @@ -0,0 +1,53 @@ +import ./make-test-python.nix ( + { pkgs, lib, ... }: + + let + port = 3142; + defaultPort = 8083; + in + with lib; + { + name = "calibre-web"; + meta.maintainers = with pkgs.lib.maintainers; [ pborzenkov ]; + + nodes = { + default = { ... }: { + services.calibre-web.enable = true; + }; + + customized = { pkgs, ... }: { + services.calibre-web = { + enable = true; + listen.port = port; + options = { + calibreLibrary = "/tmp/books"; + reverseProxyAuth = { + enable = true; + header = "X-User"; + }; + }; + }; + environment.systemPackages = [ pkgs.calibre ]; + }; + }; + testScript = '' + start_all() + + default.wait_for_unit("calibre-web.service") + default.wait_for_open_port(${toString defaultPort}) + default.succeed( + "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep -q 'Basic Configuration'" + ) + + customized.succeed( + "mkdir /tmp/books && calibredb --library-path /tmp/books add -e --title test-book" + ) + customized.succeed("systemctl restart calibre-web") + customized.wait_for_unit("calibre-web.service") + customized.wait_for_open_port(${toString port}) + customized.succeed( + "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep -q test-book" + ) + ''; + } +) |