From 827abd5deb87c1ec15112d7cde1a03a4ba4b4983 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 9 Mar 2020 23:32:44 +0100 Subject: tests: getmail: Provide a pre-initialized user account password. * gnu/tests/mail.scm (%getmail-os): Rewrite so that the "alice" account has a password. (run-getmail-test)[test]("set password for alice"): Remove. This would not work since commit 8b9cad01e9619f53dc5a65892ca6a09ca5de3447 since 'passwd' would no longer be in $PATH. --- gnu/tests/mail.scm | 96 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 43 deletions(-) diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm index 023f59df10..298918b3a7 100644 --- a/gnu/tests/mail.scm +++ b/gnu/tests/mail.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2017 Carlo Zancanaro -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2020 Ludovic Courtès ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2019 Christopher Baines @@ -26,8 +26,11 @@ (define-module (gnu tests mail) #:use-module (gnu tests) #:use-module (gnu packages mail) #:use-module (gnu system) + #:use-module (gnu system accounts) + #:use-module (gnu system shadow) #:use-module (gnu system vm) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services getmail) #:use-module (gnu services mail) #:use-module (gnu services networking) @@ -404,43 +407,55 @@ (define %test-dovecot (value (run-dovecot-test)))) (define %getmail-os - (simple-operating-system - (service dhcp-client-service-type) - (service dovecot-service-type - (dovecot-configuration - (disable-plaintext-auth? #f) - (ssl? "no") - (auth-mechanisms '("anonymous" "plain")) - (auth-anonymous-username "alice") - (mail-location - (string-append "maildir:~/Maildir" - ":INBOX=~/Maildir/INBOX" - ":LAYOUT=fs")))) - (service getmail-service-type - (list - (getmail-configuration - (name 'test) - (user "alice") - (directory "/var/lib/getmail/alice") - (idle '("TESTBOX")) - (rcfile - (getmail-configuration-file - (retriever - (getmail-retriever-configuration - (type "SimpleIMAPRetriever") - (server "localhost") - (username "alice") - (port 143) - (extra-parameters - '((password . "testpass") - (mailboxes . ("TESTBOX")))))) - (destination - (getmail-destination-configuration - (type "Maildir") - (path "/home/alice/TestMaildir/"))) - (options - (getmail-options-configuration - (read-all #f)))))))))) + (operating-system + (inherit (simple-operating-system)) + + ;; Set a password for the user account; the test needs it. + (users (cons (user-account + (name "alice") + (password (crypt "testpass" "$6$abc")) + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" "audio" "video"))) + %base-user-accounts)) + + (services (cons* (service dhcp-client-service-type) + (service dovecot-service-type + (dovecot-configuration + (disable-plaintext-auth? #f) + (ssl? "no") + (auth-mechanisms '("anonymous" "plain")) + (auth-anonymous-username "alice") + (mail-location + (string-append "maildir:~/Maildir" + ":INBOX=~/Maildir/INBOX" + ":LAYOUT=fs")))) + (service getmail-service-type + (list + (getmail-configuration + (name 'test) + (user "alice") + (directory "/var/lib/getmail/alice") + (idle '("TESTBOX")) + (rcfile + (getmail-configuration-file + (retriever + (getmail-retriever-configuration + (type "SimpleIMAPRetriever") + (server "localhost") + (username "alice") + (port 143) + (extra-parameters + '((password . "testpass") + (mailboxes . ("TESTBOX")))))) + (destination + (getmail-destination-configuration + (type "Maildir") + (path "/home/alice/TestMaildir/"))) + (options + (getmail-options-configuration + (read-all #f)))))))) + %base-services)))) (define (run-getmail-test) "Return a test of an OS running Getmail service." @@ -483,11 +498,6 @@ (define message "From: test@example.com\n\ (start-service 'dovecot)) marionette)) - (test-assert "set password for alice" - (marionette-eval - '(system "echo -e \"testpass\ntestpass\" | passwd alice") - marionette)) - ;; Wait for getmail to be up and running. (test-assert "getmail-test running" (marionette-eval -- cgit v1.2.3