aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/tests/couchdb.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/couchdb.nix')
-rw-r--r--nixpkgs/nixos/tests/couchdb.nix80
1 files changed, 51 insertions, 29 deletions
diff --git a/nixpkgs/nixos/tests/couchdb.nix b/nixpkgs/nixos/tests/couchdb.nix
index 10e95701acd..57b79e29b43 100644
--- a/nixpkgs/nixos/tests/couchdb.nix
+++ b/nixpkgs/nixos/tests/couchdb.nix
@@ -1,4 +1,19 @@
-import ./make-test-python.nix ({ pkgs, lib, ...}:
+let
+
+ makeNode = couchpkg: user: passwd:
+ { pkgs, ... } :
+
+ { environment.systemPackages = with pkgs; [ jq ];
+ services.couchdb.enable = true;
+ services.couchdb.package = couchpkg;
+ services.couchdb.adminUser = user;
+ services.couchdb.adminPass = passwd;
+ };
+ testuser = "testadmin";
+ testpass = "cowabunga";
+ testlogin = "${testuser}:${testpass}@";
+
+in import ./make-test-python.nix ({ pkgs, lib, ...}:
with lib;
@@ -9,26 +24,15 @@ with lib;
};
nodes = {
- couchdb1 =
- { pkgs, ... }:
-
- { environment.systemPackages = with pkgs; [ jq ];
- services.couchdb.enable = true;
- };
-
- couchdb2 =
- { pkgs, ... }:
-
- { environment.systemPackages = with pkgs; [ jq ];
- services.couchdb.enable = true;
- services.couchdb.package = pkgs.couchdb2;
- };
+ couchdb1 = makeNode pkgs.couchdb testuser testpass;
+ couchdb2 = makeNode pkgs.couchdb2 testuser testpass;
+ couchdb3 = makeNode pkgs.couchdb3 testuser testpass;
};
testScript = let
- curlJqCheck = action: path: jqexpr: result:
+ curlJqCheck = login: action: path: jqexpr: result:
pkgs.writeScript "curl-jq-check-${action}-${path}.sh" ''
- RESULT=$(curl -X ${action} http://127.0.0.1:5984/${path} | jq -r '${jqexpr}')
+ RESULT=$(curl -X ${action} http://${login}127.0.0.1:5984/${path} | jq -r '${jqexpr}')
echo $RESULT >&2
if [ "$RESULT" != "${result}" ]; then
exit 1
@@ -39,38 +43,56 @@ with lib;
couchdb1.wait_for_unit("couchdb.service")
couchdb1.wait_until_succeeds(
- "${curlJqCheck "GET" "" ".couchdb" "Welcome"}"
+ "${curlJqCheck "" "GET" "" ".couchdb" "Welcome"}"
)
couchdb1.wait_until_succeeds(
- "${curlJqCheck "GET" "_all_dbs" ". | length" "2"}"
+ "${curlJqCheck "" "GET" "_all_dbs" ". | length" "2"}"
)
- couchdb1.succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}")
+ couchdb1.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
couchdb1.succeed(
- "${curlJqCheck "GET" "_all_dbs" ". | length" "3"}"
+ "${curlJqCheck "" "GET" "_all_dbs" ". | length" "3"}"
)
couchdb1.succeed(
- "${curlJqCheck "DELETE" "foo" ".ok" "true"}"
+ "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
)
couchdb1.succeed(
- "${curlJqCheck "GET" "_all_dbs" ". | length" "2"}"
+ "${curlJqCheck "" "GET" "_all_dbs" ". | length" "2"}"
)
couchdb2.wait_for_unit("couchdb.service")
couchdb2.wait_until_succeeds(
- "${curlJqCheck "GET" "" ".couchdb" "Welcome"}"
+ "${curlJqCheck "" "GET" "" ".couchdb" "Welcome"}"
)
couchdb2.wait_until_succeeds(
- "${curlJqCheck "GET" "_all_dbs" ". | length" "0"}"
+ "${curlJqCheck "" "GET" "_all_dbs" ". | length" "0"}"
)
- couchdb2.succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}")
+ couchdb2.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
couchdb2.succeed(
- "${curlJqCheck "GET" "_all_dbs" ". | length" "1"}"
+ "${curlJqCheck "" "GET" "_all_dbs" ". | length" "1"}"
)
couchdb2.succeed(
- "${curlJqCheck "DELETE" "foo" ".ok" "true"}"
+ "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
)
couchdb2.succeed(
- "${curlJqCheck "GET" "_all_dbs" ". | length" "0"}"
+ "${curlJqCheck "" "GET" "_all_dbs" ". | length" "0"}"
+ )
+
+ couchdb3.wait_for_unit("couchdb.service")
+ couchdb3.wait_until_succeeds(
+ "${curlJqCheck testlogin "GET" "" ".couchdb" "Welcome"}"
+ )
+ couchdb3.wait_until_succeeds(
+ "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "0"}"
+ )
+ couchdb3.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
+ couchdb3.succeed(
+ "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "1"}"
+ )
+ couchdb3.succeed(
+ "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
+ )
+ couchdb3.succeed(
+ "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "0"}"
)
'';
})