summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorFlakebi <flakebi@t-online.de>2023-02-10 23:05:45 +0100
committerFlakebi <flakebi@t-online.de>2023-05-22 00:39:58 +0200
commit1a13b4c0f965f72be51637330aaddfac67a1f118 (patch)
tree34aca4b5d68c307939b801cac90fd8cae766d202 /nixos
parentfbe371c0196088ac03a186a5c343d137a780362c (diff)
downloadnixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.tar
nixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.tar.gz
nixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.tar.bz2
nixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.tar.lz
nixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.tar.xz
nixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.tar.zst
nixpkgs-1a13b4c0f965f72be51637330aaddfac67a1f118.zip
powerdns-admin: 0.3.0 -> 0.4.1
- Fix with flask-migrate 4+
- Update to 0.4.1
- Improve the test to check that using the database works
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/web-apps/powerdns-admin.nix3
-rw-r--r--nixos/tests/powerdns-admin.nix24
2 files changed, 26 insertions, 1 deletions
diff --git a/nixos/modules/services/web-apps/powerdns-admin.nix b/nixos/modules/services/web-apps/powerdns-admin.nix
index e9f7f41055e..7b6fb06e356 100644
--- a/nixos/modules/services/web-apps/powerdns-admin.nix
+++ b/nixos/modules/services/web-apps/powerdns-admin.nix
@@ -78,7 +78,8 @@ in
       environment.PYTHONPATH = pkgs.powerdns-admin.pythonPath;
       serviceConfig = {
         ExecStart = "${pkgs.powerdns-admin}/bin/powerdns-admin --pid /run/powerdns-admin/pid ${escapeShellArgs cfg.extraArgs}";
-        ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations";
+        # Set environment variables only for starting flask database upgrade
+        ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py SESSION_TYPE= ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID";
         PIDFile = "/run/powerdns-admin/pid";
diff --git a/nixos/tests/powerdns-admin.nix b/nixos/tests/powerdns-admin.nix
index 4d763c9c6f6..d7bacb24eec 100644
--- a/nixos/tests/powerdns-admin.nix
+++ b/nixos/tests/powerdns-admin.nix
@@ -10,6 +10,7 @@ let
   defaultConfig = ''
     BIND_ADDRESS = '127.0.0.1'
     PORT = 8000
+    CAPTCHA_ENABLE = False
   '';
 
   makeAppTest = name: configs: makeTest {
@@ -98,7 +99,30 @@ let
       tcp = {
         services.powerdns-admin.extraArgs = [ "-b" "127.0.0.1:8000" ];
         system.build.testScript = ''
+          set -euxo pipefail
           curl -sSf http://127.0.0.1:8000/
+
+          # Create account to check that the database migrations ran
+          csrf_token="$(curl -sSfc session http://127.0.0.1:8000/register | grep _csrf_token | cut -d\" -f6)"
+          # Outputs 'Redirecting' if successful
+          curl -sSfb session http://127.0.0.1:8000/register \
+            -F "_csrf_token=$csrf_token" \
+            -F "firstname=first" \
+            -F "lastname=last" \
+            -F "email=a@example.com" \
+            -F "username=user" \
+            -F "password=password" \
+            -F "rpassword=password" | grep Redirecting
+
+          # Login
+          # Outputs 'Redirecting' if successful
+          curl -sSfb session http://127.0.0.1:8000/login \
+            -F "_csrf_token=$csrf_token" \
+            -F "username=user" \
+            -F "password=password" | grep Redirecting
+
+          # Check that we are logged in, this redirects to /admin/setting/pdns if we are
+          curl -sSfb session http://127.0.0.1:8000/dashboard/ | grep /admin/setting
         '';
       };
       unix = {