1{
2 lib,
3 pkgs,
4 ...
5}:
6
7{
8 name = "froide-govplan";
9 meta.maintainers = with lib.maintainers; [ onny ];
10
11 nodes = {
12 machine = {
13 virtualisation.memorySize = 2048;
14 services.froide-govplan.enable = true;
15 };
16 };
17
18 testScript =
19 let
20 changePassword = pkgs.writeText "change-password.py" ''
21 from django.contrib.auth.models import User
22 u = User.objects.get(username='govplan')
23 u.set_password('govplan')
24 u.save()
25 '';
26 in
27 ''
28 start_all()
29 machine.wait_for_unit("froide-govplan.service")
30 machine.wait_for_file("/run/froide-govplan/froide-govplan.socket")
31
32 with subtest("Home screen loads"):
33 machine.succeed(
34 "curl -sSfL http://[::1]:80 | grep '<title>django CMS</title>'"
35 )
36
37 with subtest("Superuser can be created"):
38 machine.succeed(
39 "froide-govplan createsuperuser --noinput --username govplan --email govplan@example.com"
40 )
41 # Django doesn't have a "clean" way of inputting the password from the command line
42 machine.succeed("cat '${changePassword}' | froide-govplan shell")
43 '';
44}