at master 2.7 kB view raw
1{ 2 system ? builtins.currentSystem, 3 config ? { }, 4 pkgs ? import ../.. { inherit system config; }, 5}: 6 7let 8 shared = { 9 services.mediawiki.enable = true; 10 services.mediawiki.httpd.virtualHost.hostName = "localhost"; 11 services.mediawiki.httpd.virtualHost.adminAddr = "root@example.com"; 12 services.mediawiki.passwordFile = pkgs.writeText "password" "correcthorsebatterystaple"; 13 services.mediawiki.extensions = { 14 Matomo = pkgs.fetchzip { 15 url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz"; 16 sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b"; 17 }; 18 ParserFunctions = null; 19 }; 20 }; 21 22 testLib = import ../lib/testing-python.nix { 23 inherit system pkgs; 24 extraConfigurations = [ shared ]; 25 }; 26in 27{ 28 mysql = testLib.makeTest { 29 name = "mediawiki-mysql"; 30 nodes.machine = { 31 services.mediawiki.database.type = "mysql"; 32 }; 33 testScript = '' 34 start_all() 35 36 machine.wait_for_unit("phpfpm-mediawiki.service") 37 38 page = machine.succeed("curl -fL http://localhost/") 39 assert "MediaWiki has been installed" in page 40 ''; 41 }; 42 43 postgresql = testLib.makeTest { 44 name = "mediawiki-postgres"; 45 nodes.machine = { 46 services.mediawiki.database.type = "postgres"; 47 }; 48 testScript = '' 49 start_all() 50 51 machine.wait_for_unit("phpfpm-mediawiki.service") 52 53 page = machine.succeed("curl -fL http://localhost/") 54 assert "MediaWiki has been installed" in page 55 ''; 56 }; 57 58 nohttpd = testLib.makeTest { 59 name = "mediawiki-nohttpd"; 60 nodes.machine = { 61 services.mediawiki.webserver = "none"; 62 }; 63 testScript = 64 { nodes, ... }: 65 '' 66 start_all() 67 machine.wait_for_unit("phpfpm-mediawiki.service") 68 env = ( 69 "SCRIPT_NAME=/index.php", 70 "SCRIPT_FILENAME=${nodes.machine.services.mediawiki.finalPackage}/share/mediawiki/index.php", 71 "REMOTE_ADDR=127.0.0.1", 72 'QUERY_STRING=title=Main_Page', 73 "REQUEST_METHOD=GET", 74 ); 75 page = machine.succeed(f"{' '.join(env)} ${pkgs.fcgi}/bin/cgi-fcgi -bind -connect ${nodes.machine.services.phpfpm.pools.mediawiki.socket}") 76 assert "MediaWiki has been installed" in page, f"no 'MediaWiki has been installed' in:\n{page}" 77 ''; 78 }; 79 80 nginx = testLib.makeTest { 81 name = "mediawiki-nginx"; 82 nodes.machine = { 83 services.mediawiki.webserver = "nginx"; 84 }; 85 testScript = '' 86 start_all() 87 88 machine.wait_for_unit("phpfpm-mediawiki.service") 89 machine.wait_for_unit("nginx.service") 90 91 page = machine.succeed("curl -fL http://localhost/") 92 assert "MediaWiki has been installed" in page 93 ''; 94 }; 95}