mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-14 06:00:33 +03:00
parent
eb0e0f21f1
commit
b7d2e507e0
2 changed files with 112 additions and 114 deletions
|
@ -1314,7 +1314,7 @@ in {
|
||||||
wmderland = handleTest ./wmderland.nix {};
|
wmderland = handleTest ./wmderland.nix {};
|
||||||
workout-tracker = handleTest ./workout-tracker.nix {};
|
workout-tracker = handleTest ./workout-tracker.nix {};
|
||||||
wpa_supplicant = import ./wpa_supplicant.nix { inherit pkgs runTest; };
|
wpa_supplicant = import ./wpa_supplicant.nix { inherit pkgs runTest; };
|
||||||
wordpress = handleTest ./wordpress.nix {};
|
wordpress = runTest ./wordpress.nix;
|
||||||
wrappers = handleTest ./wrappers.nix {};
|
wrappers = handleTest ./wrappers.nix {};
|
||||||
writefreely = handleTest ./web-apps/writefreely.nix {};
|
writefreely = handleTest ./web-apps/writefreely.nix {};
|
||||||
wstunnel = runTest ./wstunnel.nix;
|
wstunnel = runTest ./wstunnel.nix;
|
||||||
|
|
|
@ -1,123 +1,121 @@
|
||||||
import ./make-test-python.nix (
|
{ lib, config, ... }:
|
||||||
{ lib, pkgs, ... }:
|
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
name = "wordpress";
|
name = "wordpress";
|
||||||
meta = with pkgs.lib.maintainers; {
|
meta = with lib.maintainers; {
|
||||||
maintainers = [
|
maintainers = [
|
||||||
flokli
|
flokli
|
||||||
grahamc # under duress!
|
grahamc # under duress!
|
||||||
mmilata
|
mmilata
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes =
|
||||||
|
lib.foldl
|
||||||
|
(
|
||||||
|
a: version:
|
||||||
|
let
|
||||||
|
package = config.node.pkgs."wordpress_${version}";
|
||||||
|
in
|
||||||
|
a
|
||||||
|
// {
|
||||||
|
"wp${version}_httpd" = _: {
|
||||||
|
services.httpd.adminAddr = "webmaster@site.local";
|
||||||
|
services.httpd.logPerVirtualHost = true;
|
||||||
|
|
||||||
|
services.wordpress.webserver = "httpd";
|
||||||
|
services.wordpress.sites = {
|
||||||
|
"site1.local" = {
|
||||||
|
database.tablePrefix = "site1_";
|
||||||
|
inherit package;
|
||||||
|
};
|
||||||
|
"site2.local" = {
|
||||||
|
database.tablePrefix = "site2_";
|
||||||
|
inherit package;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
networking.hosts."127.0.0.1" = [
|
||||||
|
"site1.local"
|
||||||
|
"site2.local"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"wp${version}_nginx" = _: {
|
||||||
|
services.wordpress.webserver = "nginx";
|
||||||
|
services.wordpress.sites = {
|
||||||
|
"site1.local" = {
|
||||||
|
database.tablePrefix = "site1_";
|
||||||
|
inherit package;
|
||||||
|
};
|
||||||
|
"site2.local" = {
|
||||||
|
database.tablePrefix = "site2_";
|
||||||
|
inherit package;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
networking.hosts."127.0.0.1" = [
|
||||||
|
"site1.local"
|
||||||
|
"site2.local"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"wp${version}_caddy" = _: {
|
||||||
|
services.wordpress.webserver = "caddy";
|
||||||
|
services.wordpress.sites = {
|
||||||
|
"site1.local" = {
|
||||||
|
database.tablePrefix = "site1_";
|
||||||
|
inherit package;
|
||||||
|
};
|
||||||
|
"site2.local" = {
|
||||||
|
database.tablePrefix = "site2_";
|
||||||
|
inherit package;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
networking.hosts."127.0.0.1" = [
|
||||||
|
"site1.local"
|
||||||
|
"site2.local"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
{ }
|
||||||
|
[
|
||||||
|
"6_7"
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
nodes =
|
testScript = ''
|
||||||
lib.foldl
|
import re
|
||||||
(
|
|
||||||
a: version:
|
|
||||||
let
|
|
||||||
package = pkgs."wordpress_${version}";
|
|
||||||
in
|
|
||||||
a
|
|
||||||
// {
|
|
||||||
"wp${version}_httpd" = _: {
|
|
||||||
services.httpd.adminAddr = "webmaster@site.local";
|
|
||||||
services.httpd.logPerVirtualHost = true;
|
|
||||||
|
|
||||||
services.wordpress.webserver = "httpd";
|
start_all()
|
||||||
services.wordpress.sites = {
|
|
||||||
"site1.local" = {
|
|
||||||
database.tablePrefix = "site1_";
|
|
||||||
inherit package;
|
|
||||||
};
|
|
||||||
"site2.local" = {
|
|
||||||
database.tablePrefix = "site2_";
|
|
||||||
inherit package;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
${lib.concatStrings (
|
||||||
networking.hosts."127.0.0.1" = [
|
lib.mapAttrsToList (name: value: ''
|
||||||
"site1.local"
|
${name}.wait_for_unit("${(value null).services.wordpress.webserver}")
|
||||||
"site2.local"
|
'') nodes
|
||||||
];
|
)}
|
||||||
};
|
|
||||||
|
|
||||||
"wp${version}_nginx" = _: {
|
site_names = ["site1.local", "site2.local"]
|
||||||
services.wordpress.webserver = "nginx";
|
|
||||||
services.wordpress.sites = {
|
|
||||||
"site1.local" = {
|
|
||||||
database.tablePrefix = "site1_";
|
|
||||||
inherit package;
|
|
||||||
};
|
|
||||||
"site2.local" = {
|
|
||||||
database.tablePrefix = "site2_";
|
|
||||||
inherit package;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
for machine in (${lib.concatStringsSep ", " (builtins.attrNames nodes)}):
|
||||||
networking.hosts."127.0.0.1" = [
|
for site_name in site_names:
|
||||||
"site1.local"
|
machine.wait_for_unit(f"phpfpm-wordpress-{site_name}")
|
||||||
"site2.local"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"wp${version}_caddy" = _: {
|
with subtest("website returns welcome screen"):
|
||||||
services.wordpress.webserver = "caddy";
|
assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
|
||||||
services.wordpress.sites = {
|
|
||||||
"site1.local" = {
|
|
||||||
database.tablePrefix = "site1_";
|
|
||||||
inherit package;
|
|
||||||
};
|
|
||||||
"site2.local" = {
|
|
||||||
database.tablePrefix = "site2_";
|
|
||||||
inherit package;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
with subtest("wordpress-init went through"):
|
||||||
networking.hosts."127.0.0.1" = [
|
info = machine.get_unit_info(f"wordpress-init-{site_name}")
|
||||||
"site1.local"
|
assert info["Result"] == "success"
|
||||||
"site2.local"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
{ }
|
|
||||||
[
|
|
||||||
"6_7"
|
|
||||||
];
|
|
||||||
|
|
||||||
testScript = ''
|
with subtest("secret keys are set"):
|
||||||
import re
|
pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
|
||||||
|
assert pattern.search(
|
||||||
start_all()
|
machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
|
||||||
|
)
|
||||||
${lib.concatStrings (
|
'';
|
||||||
lib.mapAttrsToList (name: value: ''
|
}
|
||||||
${name}.wait_for_unit("${(value null).services.wordpress.webserver}")
|
|
||||||
'') nodes
|
|
||||||
)}
|
|
||||||
|
|
||||||
site_names = ["site1.local", "site2.local"]
|
|
||||||
|
|
||||||
for machine in (${lib.concatStringsSep ", " (builtins.attrNames nodes)}):
|
|
||||||
for site_name in site_names:
|
|
||||||
machine.wait_for_unit(f"phpfpm-wordpress-{site_name}")
|
|
||||||
|
|
||||||
with subtest("website returns welcome screen"):
|
|
||||||
assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
|
|
||||||
|
|
||||||
with subtest("wordpress-init went through"):
|
|
||||||
info = machine.get_unit_info(f"wordpress-init-{site_name}")
|
|
||||||
assert info["Result"] == "success"
|
|
||||||
|
|
||||||
with subtest("secret keys are set"):
|
|
||||||
pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
|
|
||||||
assert pattern.search(
|
|
||||||
machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue