nixosTests.freshrss: handleTest -> runTest

This commit is contained in:
Sizhe Zhao 2025-06-07 21:50:04 +08:00
parent 40a27ed8e7
commit da6ecbe539
No known key found for this signature in database
GPG Key ID: ED1807251A7DA08F
8 changed files with 159 additions and 176 deletions

View File

@ -552,7 +552,7 @@ in
freenet = runTest ./freenet.nix;
freeswitch = runTest ./freeswitch.nix;
freetube = discoverTests (import ./freetube.nix);
freshrss = handleTest ./freshrss { };
freshrss = import ./freshrss { inherit runTest; };
frigate = runTest ./frigate.nix;
froide-govplan = runTest ./web-apps/froide-govplan.nix;
frp = runTest ./frp.nix;

View File

@ -1,30 +1,28 @@
import ../make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "freshrss-caddy-sqlite";
meta.maintainers = with lib.maintainers; [
etu
stunkymonkey
];
{ lib, ... }:
{
name = "freshrss-caddy-sqlite";
meta.maintainers = with lib.maintainers; [
etu
stunkymonkey
];
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
passwordFile = pkgs.writeText "password" "secret";
dataDir = "/srv/freshrss";
webserver = "caddy";
virtualHost = "freshrss:80";
};
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
passwordFile = pkgs.writeText "password" "secret";
dataDir = "/srv/freshrss";
webserver = "caddy";
virtualHost = "freshrss:80";
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/")
assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully"
'';
}
)
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/")
assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully"
'';
}

View File

@ -1,10 +1,10 @@
{ system, pkgs, ... }:
{ runTest }:
{
extensions = import ./extensions.nix { inherit system pkgs; };
http-auth = import ./http-auth.nix { inherit system pkgs; };
none-auth = import ./none-auth.nix { inherit system pkgs; };
pgsql = import ./pgsql.nix { inherit system pkgs; };
nginx-sqlite = import ./nginx-sqlite.nix { inherit system pkgs; };
caddy-sqlite = import ./caddy-sqlite.nix { inherit system pkgs; };
extensions = runTest ./extensions.nix;
http-auth = runTest ./http-auth.nix;
none-auth = runTest ./none-auth.nix;
pgsql = runTest ./pgsql.nix;
nginx-sqlite = runTest ./nginx-sqlite.nix;
caddy-sqlite = runTest ./caddy-sqlite.nix;
}

View File

@ -1,24 +1,21 @@
import ../make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "freshrss-extensions";
{
name = "freshrss-extensions";
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
authType = "none";
extensions = [ pkgs.freshrss-extensions.youtube ];
};
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
authType = "none";
extensions = [ pkgs.freshrss-extensions.youtube ];
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s http://localhost:80/i/?c=extension")
assert '<span class="ext_name disabled">YouTube Video Feed</span>' in response, "Extension not present in extensions page."
'';
}
)
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s http://localhost:80/i/?c=extension")
assert '<span class="ext_name disabled">YouTube Video Feed</span>' in response, "Extension not present in extensions page."
'';
}

View File

@ -1,25 +1,21 @@
import ../make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "freshrss-http-auth";
meta.maintainers = with lib.maintainers; [ mattchrist ];
{ lib, ... }:
{
name = "freshrss-http-auth";
meta.maintainers = with lib.maintainers; [ mattchrist ];
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
dataDir = "/srv/freshrss";
authType = "http_auth";
};
};
nodes.machine = {
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
dataDir = "/srv/freshrss";
authType = "http_auth";
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' -H 'Remote-User: testuser' http://localhost:80/i/")
assert 'Account: testuser' in response, "http_auth method didn't work."
'';
}
)
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' -H 'Remote-User: testuser' http://localhost:80/i/")
assert 'Account: testuser' in response, "http_auth method didn't work."
'';
}

View File

@ -1,28 +1,26 @@
import ../make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "freshrss-nginx-sqlite";
meta.maintainers = with lib.maintainers; [
etu
stunkymonkey
];
{ lib, ... }:
{
name = "freshrss-nginx-sqlite";
meta.maintainers = with lib.maintainers; [
etu
stunkymonkey
];
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
passwordFile = pkgs.writeText "password" "secret";
dataDir = "/srv/freshrss";
};
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
passwordFile = pkgs.writeText "password" "secret";
dataDir = "/srv/freshrss";
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/")
assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully"
'';
}
)
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/")
assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully"
'';
}

View File

@ -1,24 +1,20 @@
import ../make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "freshrss-none-auth";
meta.maintainers = with lib.maintainers; [ mattchrist ];
{ lib, ... }:
{
name = "freshrss-none-auth";
meta.maintainers = with lib.maintainers; [ mattchrist ];
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
authType = "none";
};
};
nodes.machine = {
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
authType = "none";
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s http://localhost:80/i/")
assert '<title> · FreshRSS</title>' in response, "FreshRSS stream page didn't load successfully"
'';
}
)
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s http://localhost:80/i/")
assert '<title> · FreshRSS</title>' in response, "FreshRSS stream page didn't load successfully"
'';
}

View File

@ -1,54 +1,52 @@
import ../make-test-python.nix (
{ lib, pkgs, ... }:
{
name = "freshrss-pgsql";
meta.maintainers = with lib.maintainers; [
etu
stunkymonkey
];
{ lib, ... }:
{
name = "freshrss-pgsql";
meta.maintainers = with lib.maintainers; [
etu
stunkymonkey
];
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
passwordFile = pkgs.writeText "password" "secret";
dataDir = "/srv/freshrss";
database = {
type = "pgsql";
port = 5432;
user = "freshrss";
passFile = pkgs.writeText "db-password" "db-secret";
};
};
services.postgresql = {
enable = true;
ensureDatabases = [ "freshrss" ];
ensureUsers = [
{
name = "freshrss";
ensureDBOwnership = true;
}
];
initialScript = pkgs.writeText "postgresql-password" ''
CREATE ROLE freshrss WITH LOGIN PASSWORD 'db-secret' CREATEDB;
'';
};
systemd.services."freshrss-config" = {
requires = [ "postgresql.target" ];
after = [ "postgresql.target" ];
nodes.machine =
{ pkgs, ... }:
{
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
passwordFile = pkgs.writeText "password" "secret";
dataDir = "/srv/freshrss";
database = {
type = "pgsql";
port = 5432;
user = "freshrss";
passFile = pkgs.writeText "db-password" "db-secret";
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(5432)
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/")
assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully"
'';
}
)
services.postgresql = {
enable = true;
ensureDatabases = [ "freshrss" ];
ensureUsers = [
{
name = "freshrss";
ensureDBOwnership = true;
}
];
initialScript = pkgs.writeText "postgresql-password" ''
CREATE ROLE freshrss WITH LOGIN PASSWORD 'db-secret' CREATEDB;
'';
};
systemd.services."freshrss-config" = {
requires = [ "postgresql.target" ];
after = [ "postgresql.target" ];
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(5432)
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/")
assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully"
'';
}