1import ./make-test-python.nix (
2 { pkgs, ... }:
3 let
4 role = "test";
5 password = "secret";
6 conn = "local";
7 in
8 {
9 name = "pgmanage";
10 meta = with pkgs.lib.maintainers; {
11 maintainers = [ basvandijk ];
12 };
13 nodes = {
14 one =
15 { config, pkgs, ... }:
16 {
17 services = {
18 postgresql = {
19 enable = true;
20 initialScript = pkgs.writeText "pg-init-script" ''
21 CREATE ROLE ${role} SUPERUSER LOGIN PASSWORD '${password}';
22 '';
23 };
24 pgmanage = {
25 enable = true;
26 connections = {
27 ${conn} =
28 "hostaddr=127.0.0.1 port=${toString config.services.postgresql.settings.port} dbname=postgres";
29 };
30 };
31 };
32 };
33 };
34
35 testScript = ''
36 start_all()
37 one.wait_for_unit("default.target")
38 one.require_unit_state("pgmanage.service", "active")
39
40 # Test if we can log in.
41 one.wait_until_succeeds(
42 "curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail"
43 )
44 '';
45 }
46)