diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 1aa54c48d472..d2940b2c437f 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -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; diff --git a/nixos/tests/freshrss/caddy-sqlite.nix b/nixos/tests/freshrss/caddy-sqlite.nix index 69b62ab3b899..3c2e60e5e3bb 100644 --- a/nixos/tests/freshrss/caddy-sqlite.nix +++ b/nixos/tests/freshrss/caddy-sqlite.nix @@ -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 'Login · FreshRSS' 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 'Login · FreshRSS' in response, "Login page didn't load successfully" + ''; +} diff --git a/nixos/tests/freshrss/default.nix b/nixos/tests/freshrss/default.nix index 9253ee7f7e4a..b5af365749df 100644 --- a/nixos/tests/freshrss/default.nix +++ b/nixos/tests/freshrss/default.nix @@ -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; } diff --git a/nixos/tests/freshrss/extensions.nix b/nixos/tests/freshrss/extensions.nix index d2758fd387b4..8b0d306e6b01 100644 --- a/nixos/tests/freshrss/extensions.nix +++ b/nixos/tests/freshrss/extensions.nix @@ -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 'YouTube Video Feed' 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 'YouTube Video Feed' in response, "Extension not present in extensions page." + ''; +} diff --git a/nixos/tests/freshrss/http-auth.nix b/nixos/tests/freshrss/http-auth.nix index f0fb28ee188f..1f6fd1ad8e7d 100644 --- a/nixos/tests/freshrss/http-auth.nix +++ b/nixos/tests/freshrss/http-auth.nix @@ -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." + ''; +} diff --git a/nixos/tests/freshrss/nginx-sqlite.nix b/nixos/tests/freshrss/nginx-sqlite.nix index 2425dc086549..c8097465d8cd 100644 --- a/nixos/tests/freshrss/nginx-sqlite.nix +++ b/nixos/tests/freshrss/nginx-sqlite.nix @@ -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 'Login · FreshRSS' 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 'Login · FreshRSS' in response, "Login page didn't load successfully" + ''; +} diff --git a/nixos/tests/freshrss/none-auth.nix b/nixos/tests/freshrss/none-auth.nix index 97c950b4b514..77d636f88071 100644 --- a/nixos/tests/freshrss/none-auth.nix +++ b/nixos/tests/freshrss/none-auth.nix @@ -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 ' · FreshRSS' 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 ' · FreshRSS' in response, "FreshRSS stream page didn't load successfully" + ''; +} diff --git a/nixos/tests/freshrss/pgsql.nix b/nixos/tests/freshrss/pgsql.nix index 971ea7b15bc4..5fceb98b0efb 100644 --- a/nixos/tests/freshrss/pgsql.nix +++ b/nixos/tests/freshrss/pgsql.nix @@ -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 'Login · FreshRSS' 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 'Login · FreshRSS' in response, "Login page didn't load successfully" + ''; +}