mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-30 19:02:57 +00:00
0b31ada92b
The tests had very much duplication and some if it was even wrong! For instance, `withRcloneEnv` in the MySQL test didn't have the `"$@"` at the bottom to execute commands passed to it. Because of that, the MySQL testcase never checked whether files can be uploaded. Since tests are just another module-system I decided to abstract away common things by using it: * Define a base module with * an empty `client` node and a `nextcloud` node with defaults shared among all tests. * rclone scripts that are used by all tests. * a `testScript` checking upload/download. Additional checks can be added via `test-helpers.extraTests`. * Make common information such as admin user & password shared via options. Also, changed the following things: * The `name` of the final derivation also includes the Nextcloud major it was tested against. * Improved the objecstore test by making sure the file was actually uploaded into the bucket.
38 lines
1.1 KiB
Nix
38 lines
1.1 KiB
Nix
{ pkgs, testBase, system, ... }:
|
|
|
|
with import ../../lib/testing-python.nix { inherit system pkgs; };
|
|
runTest ({ config, ... }: {
|
|
name = "nextcloud-with-mysql-and-memcached";
|
|
meta = with pkgs.lib.maintainers; {
|
|
maintainers = [ eqyiel ];
|
|
};
|
|
|
|
imports = [ testBase ];
|
|
|
|
nodes = {
|
|
nextcloud = { config, pkgs, ... }: {
|
|
services.nextcloud = {
|
|
caching = {
|
|
apcu = true;
|
|
redis = false;
|
|
memcached = true;
|
|
};
|
|
config.dbtype = "mysql";
|
|
};
|
|
|
|
services.memcached.enable = true;
|
|
};
|
|
};
|
|
|
|
test-helpers.init = let
|
|
configureMemcached = pkgs.writeScript "configure-memcached" ''
|
|
nextcloud-occ config:system:set memcached_servers 0 0 --value 127.0.0.1 --type string
|
|
nextcloud-occ config:system:set memcached_servers 0 1 --value 11211 --type integer
|
|
nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\APCu' --type string
|
|
nextcloud-occ config:system:set memcache.distributed --value '\OC\Memcache\Memcached' --type string
|
|
'';
|
|
in ''
|
|
nextcloud.succeed("${configureMemcached}")
|
|
'';
|
|
})
|