nixosTests.mastodon: Put script in separate file

Changed files
+76 -97
nixos
+13 -50
nixos/tests/web-apps/mastodon/remote-postgresql.nix
···
};
};
-
testScript = ''
-
start_all()
-
-
database.wait_for_unit("postgresql.service")
-
database.wait_for_open_port(5432)
-
-
server.wait_for_unit("redis-mastodon.service")
-
server.wait_for_unit("mastodon-sidekiq.service")
-
server.wait_for_unit("mastodon-streaming.service")
-
server.wait_for_unit("mastodon-web.service")
-
server.wait_for_open_port(55000)
-
server.wait_for_open_port(55001)
-
-
# Check that mastodon-media-auto-remove is scheduled
-
server.succeed("systemctl status mastodon-media-auto-remove.timer")
-
-
# Check Mastodon version from remote client
-
client.succeed("curl --fail https://mastodon.local/api/v1/instance | jq -r '.version' | grep '${pkgs.mastodon.version}'")
-
-
# Check access from remote client
-
client.succeed("curl --fail https://mastodon.local/about | grep 'Mastodon hosted on mastodon.local'")
-
client.succeed("curl --fail $(curl https://mastodon.local/api/v1/instance 2> /dev/null | jq -r .thumbnail) --output /dev/null")
-
-
# Simple check tootctl commands
-
# Check Mastodon version
-
server.succeed("mastodon-tootctl version | grep '${pkgs.mastodon.version}")
-
-
# Manage accounts
-
server.succeed("mastodon-tootctl email_domain_blocks add example.com")
-
server.succeed("mastodon-tootctl email_domain_blocks list | grep example.com")
-
server.fail("mastodon-tootctl email_domain_blocks list | grep mastodon.local")
-
server.fail("mastodon-tootctl accounts create alice --email=alice@example.com")
-
server.succeed("mastodon-tootctl email_domain_blocks remove example.com")
-
server.succeed("mastodon-tootctl accounts create bob --email=bob@example.com")
-
server.succeed("mastodon-tootctl accounts approve bob")
-
server.succeed("mastodon-tootctl accounts delete bob")
-
-
# Manage IP access
-
server.succeed("mastodon-tootctl ip_blocks add 192.168.0.0/16 --severity=no_access")
-
server.succeed("mastodon-tootctl ip_blocks export | grep 192.168.0.0/16")
-
server.fail("mastodon-tootctl ip_blocks export | grep 172.16.0.0/16")
-
client.fail("curl --fail https://mastodon.local/about")
-
server.succeed("mastodon-tootctl ip_blocks remove 192.168.0.0/16")
-
client.succeed("curl --fail https://mastodon.local/about")
-
-
server.shutdown()
-
client.shutdown()
-
database.shutdown()
-
nginx.shutdown()
-
'';
+
testScript = import ./script.nix {
+
inherit pkgs;
+
extraInit = ''
+
nginx.wait_for_unit("nginx.service")
+
nginx.wait_for_open_port(443)
+
database.wait_for_unit("postgresql.service")
+
database.wait_for_open_port(5432)
+
'';
+
extraShutdown = ''
+
nginx.shutdown()
+
database.shutdown()
+
'';
+
};
})
+54
nixos/tests/web-apps/mastodon/script.nix
···
+
{ pkgs
+
, extraInit ? ""
+
, extraShutdown ? ""
+
}:
+
+
''
+
start_all()
+
+
${extraInit}
+
+
server.wait_for_unit("redis-mastodon.service")
+
server.wait_for_unit("mastodon-sidekiq.service")
+
server.wait_for_unit("mastodon-streaming.service")
+
server.wait_for_unit("mastodon-web.service")
+
server.wait_for_open_port(55000)
+
server.wait_for_open_port(55001)
+
+
# Check that mastodon-media-auto-remove is scheduled
+
server.succeed("systemctl status mastodon-media-auto-remove.timer")
+
+
# Check Mastodon version from remote client
+
client.succeed("curl --fail https://mastodon.local/api/v1/instance | jq -r '.version' | grep '${pkgs.mastodon.version}'")
+
+
# Check access from remote client
+
client.succeed("curl --fail https://mastodon.local/about | grep 'Mastodon hosted on mastodon.local'")
+
client.succeed("curl --fail $(curl https://mastodon.local/api/v1/instance 2> /dev/null | jq -r .thumbnail) --output /dev/null")
+
+
# Simple check tootctl commands
+
# Check Mastodon version
+
server.succeed("mastodon-tootctl version | grep '${pkgs.mastodon.version}'")
+
+
# Manage accounts
+
server.succeed("mastodon-tootctl email_domain_blocks add example.com")
+
server.succeed("mastodon-tootctl email_domain_blocks list | grep example.com")
+
server.fail("mastodon-tootctl email_domain_blocks list | grep mastodon.local")
+
server.fail("mastodon-tootctl accounts create alice --email=alice@example.com")
+
server.succeed("mastodon-tootctl email_domain_blocks remove example.com")
+
server.succeed("mastodon-tootctl accounts create bob --email=bob@example.com")
+
server.succeed("mastodon-tootctl accounts approve bob")
+
server.succeed("mastodon-tootctl accounts delete bob")
+
+
# Manage IP access
+
server.succeed("mastodon-tootctl ip_blocks add 192.168.0.0/16 --severity=no_access")
+
server.succeed("mastodon-tootctl ip_blocks export | grep 192.168.0.0/16")
+
server.fail("mastodon-tootctl ip_blocks export | grep 172.16.0.0/16")
+
client.fail("curl --fail https://mastodon.local/about")
+
server.succeed("mastodon-tootctl ip_blocks remove 192.168.0.0/16")
+
client.succeed("curl --fail https://mastodon.local/about")
+
+
server.shutdown()
+
client.shutdown()
+
+
${extraShutdown}
+
''
+9 -47
nixos/tests/web-apps/mastodon/standard.nix
···
};
};
-
testScript = ''
-
start_all()
-
-
server.wait_for_unit("nginx.service")
-
server.wait_for_unit("redis-mastodon.service")
-
server.wait_for_unit("postgresql.service")
-
server.wait_for_unit("mastodon-sidekiq.service")
-
server.wait_for_unit("mastodon-streaming.service")
-
server.wait_for_unit("mastodon-web.service")
-
server.wait_for_open_port(55000)
-
server.wait_for_open_port(55001)
-
-
# Check that mastodon-media-auto-remove is scheduled
-
server.succeed("systemctl status mastodon-media-auto-remove.timer")
-
-
# Check Mastodon version from remote client
-
client.succeed("curl --fail https://mastodon.local/api/v1/instance | jq -r '.version' | grep '${pkgs.mastodon.version}'")
-
-
# Check access from remote client
-
client.succeed("curl --fail https://mastodon.local/about | grep 'Mastodon hosted on mastodon.local'")
-
client.succeed("curl --fail $(curl https://mastodon.local/api/v1/instance 2> /dev/null | jq -r .thumbnail) --output /dev/null")
-
-
# Simple check tootctl commands
-
# Check Mastodon version
-
server.succeed("mastodon-tootctl version | grep '${pkgs.mastodon.version}'")
-
-
# Manage accounts
-
server.succeed("mastodon-tootctl email_domain_blocks add example.com")
-
server.succeed("mastodon-tootctl email_domain_blocks list | grep example.com")
-
server.fail("mastodon-tootctl email_domain_blocks list | grep mastodon.local")
-
server.fail("mastodon-tootctl accounts create alice --email=alice@example.com")
-
server.succeed("mastodon-tootctl email_domain_blocks remove example.com")
-
server.succeed("mastodon-tootctl accounts create bob --email=bob@example.com")
-
server.succeed("mastodon-tootctl accounts approve bob")
-
server.succeed("mastodon-tootctl accounts delete bob")
-
-
# Manage IP access
-
server.succeed("mastodon-tootctl ip_blocks add 192.168.0.0/16 --severity=no_access")
-
server.succeed("mastodon-tootctl ip_blocks export | grep 192.168.0.0/16")
-
server.fail("mastodon-tootctl ip_blocks export | grep 172.16.0.0/16")
-
client.fail("curl --fail https://mastodon.local/about")
-
server.succeed("mastodon-tootctl ip_blocks remove 192.168.0.0/16")
-
client.succeed("curl --fail https://mastodon.local/about")
-
-
server.shutdown()
-
client.shutdown()
-
'';
+
testScript = import ./script.nix {
+
inherit pkgs;
+
extraInit = ''
+
server.wait_for_unit("nginx.service")
+
server.wait_for_open_port(443)
+
server.wait_for_unit("postgresql.service")
+
server.wait_for_open_port(5432)
+
'';
+
};
})