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:
parent
a2b89a3319
commit
f5cc7d03a7
1 changed files with 43 additions and 10 deletions
|
@ -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))))
|
||||||
|
|
Reference in a new issue