summaryrefslogtreecommitdiffstats
path: root/nixos/tests/dovecot.nix
diff options
context:
space:
mode:
authorLéo Gaspard <leo@gaspard.io>2018-04-12 01:35:14 +0200
committerLéo Gaspard <leo@gaspard.io>2018-04-12 01:35:14 +0200
commit4fddb8b9c3ee137f45ce3d3f79d5fb66c80843a0 (patch)
treef702f8ec3ff8cf62299d0784eed6436f9384353e /nixos/tests/dovecot.nix
parentea145b68a019f6fff89e772e9a6c5f0584acc02c (diff)
dovecot module: test dovecot's LDA
That's apparently not enough to catch the bug I ran into with the update to 2.3.1, but at least it will check the LDA appears to work.
Diffstat (limited to 'nixos/tests/dovecot.nix')
-rw-r--r--nixos/tests/dovecot.nix19
1 files changed, 16 insertions, 3 deletions
diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix
index 3814855ed8e7..156079d1d585 100644
--- a/nixos/tests/dovecot.nix
+++ b/nixos/tests/dovecot.nix
@@ -18,6 +18,18 @@ import ./make-test.nix {
MAIL
'';
+ sendTestMailViaDeliveryAgent = pkgs.writeScriptBin "send-lda" ''
+ #!${pkgs.stdenv.shell}
+
+ exec ${pkgs.dovecot}/libexec/dovecot/deliver -d bob <<MAIL
+ From: root@localhost
+ To: bob@localhost
+ Subject: Something else...
+
+ I'm running short of ideas!
+ MAIL
+ '';
+
testImap = pkgs.writeScriptBin "test-imap" ''
#!${pkgs.python3.interpreter}
import imaplib
@@ -39,24 +51,25 @@ import ./make-test.nix {
pop = poplib.POP3('localhost')
try:
- pop.user('alice')
+ pop.user('bob')
pop.pass_('foobar')
assert len(pop.list()[1]) == 1
status, fullmail, size = pop.retr(1)
assert status.startswith(b'+OK ')
body = b"".join(fullmail[fullmail.index(b""):]).strip()
- assert body == b'Hello world!'
+ assert body == b"I'm running short of ideas!"
finally:
pop.quit()
'';
- in [ sendTestMail testImap testPop ];
+ in [ sendTestMail sendTestMailViaDeliveryAgent testImap testPop ];
};
testScript = ''
$machine->waitForUnit('postfix.service');
$machine->waitForUnit('dovecot2.service');
$machine->succeed('send-testmail');
+ $machine->succeed('send-lda');
$machine->waitUntilFails('[ "$(postqueue -p)" != "Mail queue is empty" ]');
$machine->succeed('test-imap');
$machine->succeed('test-pop');