Archived
1
0
Fork 0

gnu: telephony: Add a Jami test for a partially defined jami-account.

* gnu/tests/telephony.scm (%dummy-jami-account-partial): New variable.
(make-jami-os): Add a PARTIAL? argument and use it to select the jami-account
variant to use.
(%jami-os-provisioning-partial): New variable.
(run-jami-test): Add a PARTIAL? argument, and use it to select operating
system variant.  Skip allowed-contacts and moderators test when PARTIAL? is
true.
(%test-jami-provisioning-partial): New test.
This commit is contained in:
Maxim Cournoyer 2022-08-01 00:49:07 -04:00
parent a2b89a3319
commit f5cc7d03a7
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -31,7 +31,8 @@
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix modules) #:use-module (guix modules)
#:export (%test-jami #:export (%test-jami
%test-jami-provisioning)) %test-jami-provisioning
%test-jami-provisioning-partial))
;;; ;;;
;;; Jami daemon. ;;; Jami daemon.
@ -67,7 +68,18 @@
"fallback.another.host")) "fallback.another.host"))
(name-server-uri "https://my.name.server"))) (name-server-uri "https://my.name.server")))
(define* (make-jami-os #:key provisioning?) ;;; Like %dummy-jami-account, but with allowed-contacts and moderators left
;;; unset (thus taking the value *unspecified*).
(define %dummy-jami-account-partial
(jami-account
(archive %dummy-jami-account-archive)
(rendezvous-point? #t)
(peer-discovery? #f)
(bootstrap-hostnames '("bootstrap.me"
"fallback.another.host"))
(name-server-uri "https://my.name.server")))
(define* (make-jami-os #:key provisioning? partial?)
(operating-system (operating-system
(host-name "jami") (host-name "jami")
(timezone "America/Montreal") (timezone "America/Montreal")
@ -87,7 +99,10 @@
(if provisioning? (if provisioning?
(jami-configuration (jami-configuration
(debug? #t) (debug? #t)
(accounts (list %dummy-jami-account))) (accounts
(list (if partial?
%dummy-jami-account-partial
%dummy-jami-account))))
(jami-configuration (jami-configuration
(debug? #t)))) (debug? #t))))
(service dbus-root-service-type) (service dbus-root-service-type)
@ -109,12 +124,18 @@
(define %jami-os-provisioning (define %jami-os-provisioning
(make-jami-os #:provisioning? #t)) (make-jami-os #:provisioning? #t))
(define* (run-jami-test #:key provisioning?) (define %jami-os-provisioning-partial
"Run tests in %JAMI-OS. When PROVISIONING? is true, test the (make-jami-os #:provisioning? #t #:partial? #t))
accounts provisioning feature of the service."
(define* (run-jami-test #:key provisioning? partial?)
"Run tests in %JAMI-OS. When PROVISIONING? is true, test the accounts
provisioning feature of the service. When PARTIAL? is #t, some fields of the
jami account used as part of the jami configuration are left *unspecified*."
(define os (marionette-operating-system (define os (marionette-operating-system
(if provisioning? (if provisioning?
%jami-os-provisioning (if partial?
%jami-os-provisioning-partial
%jami-os-provisioning)
%jami-os) %jami-os)
#:imported-modules '((gnu services herd) #:imported-modules '((gnu services herd)
(guix combinators)))) (guix combinators))))
@ -202,7 +223,7 @@ accounts provisioning feature of the service."
"Account.username"))))))) "Account.username")))))))
marionette)) marionette))
(unless #$provisioning? (test-skip 1)) (unless #$(and provisioning? (not partial?)) (test-skip 1))
(test-assert "jami accounts provisioning, allowed-contacts" (test-assert "jami accounts provisioning, allowed-contacts"
(marionette-eval (marionette-eval
'(begin '(begin
@ -224,7 +245,7 @@ accounts provisioning feature of the service."
(assert (lset= string-ci=? contacts '#$%allowed-contacts))))) (assert (lset= string-ci=? contacts '#$%allowed-contacts)))))
marionette)) marionette))
(unless #$provisioning? (test-skip 1)) (unless #$(and provisioning? (not partial?)) (test-skip 1))
(test-assert "jami accounts provisioning, moderators" (test-assert "jami accounts provisioning, moderators"
(marionette-eval (marionette-eval
'(begin '(begin
@ -326,7 +347,9 @@ accounts provisioning feature of the service."
(test-end))))) (test-end)))))
(gexp->derivation (if provisioning? (gexp->derivation (if provisioning?
"jami-provisioning-test" (if partial?
"jami-provisioning-partial-test"
"jami-provisioning-partial")
"jami-test") "jami-test")
test)) test))
@ -341,3 +364,13 @@ accounts provisioning feature of the service."
(name "jami-provisioning") (name "jami-provisioning")
(description "Provisioning test for the jami service.") (description "Provisioning test for the jami service.")
(value (run-jami-test #:provisioning? #t)))) (value (run-jami-test #:provisioning? #t))))
;;; Thi test verifies that <jami-account> values can be left unspecified
;;; without causing any issue (see: https://issues.guix.gnu.org/56799).
(define %test-jami-provisioning-partial
(system-test
(name "jami-provisioning-partial")
(description "Provisioning test for the jami service, when some of the
'maybe' fields aren't provided (such that their value end up being
*unspecified*.")
(value (run-jami-test #:provisioning? #t #:partial? #t))))