vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / maddy / unencrypted.nix
blob2420d461e4e7c39fb64d175c5e8b139c5abf4703
1 import ../make-test-python.nix ({ pkgs, ... }: {
2   name = "maddy-unencrypted";
3   meta = with pkgs.lib.maintainers; { maintainers = [ onny ]; };
5   nodes = {
6     server = { ... }: {
7       services.maddy = {
8         enable = true;
9         hostname = "server";
10         primaryDomain = "server";
11         openFirewall = true;
12         ensureAccounts = [ "postmaster@server" ];
13         ensureCredentials = {
14           # Do not use this in production. This will make passwords world-readable
15           # in the Nix store
16           "postmaster@server".passwordFile = "${pkgs.writeText "postmaster" "test"}";
17         };
18       };
19     };
21     client = { ... }: {
22       environment.systemPackages = [
23         (pkgs.writers.writePython3Bin "send-testmail" { } ''
24           import smtplib
25           from email.mime.text import MIMEText
27           msg = MIMEText("Hello World")
28           msg['Subject'] = 'Test'
29           msg['From'] = "postmaster@server"
30           msg['To'] = "postmaster@server"
31           with smtplib.SMTP('server', 587) as smtp:
32               smtp.login('postmaster@server', 'test')
33               smtp.sendmail('postmaster@server', 'postmaster@server', msg.as_string())
34         '')
35         (pkgs.writers.writePython3Bin "test-imap" { } ''
36           import imaplib
38           with imaplib.IMAP4('server') as imap:
39               imap.login('postmaster@server', 'test')
40               imap.select()
41               status, refs = imap.search(None, 'ALL')
42               assert status == 'OK'
43               assert len(refs) == 1
44               status, msg = imap.fetch(refs[0], 'BODY[TEXT]')
45               assert status == 'OK'
46               assert msg[0][1].strip() == b"Hello World"
47         '')
48       ];
49     };
50   };
52   testScript = ''
53     start_all()
54     server.wait_for_unit("maddy.service")
55     server.wait_for_open_port(143)
56     server.wait_for_open_port(587)
57     client.succeed("send-testmail")
58     client.succeed("test-imap")
59   '';