chiark / gitweb /
Use -isystem for extra system includes on FreeBSD.
[disorder] / tests / user.py
index 13bee66109ea0c7ef5a7a3b8d1ca9922d723bb15..2e5f86e85de8f3060faab9098e89e39d701abb22 100755 (executable)
@@ -27,6 +27,11 @@ def test():
     print " checking user creation"
     c = disorder.client()
     c.adduser("bob", "bobpass")
+    users = c.users()
+    assert dtest.lists_have_same_contents(users,
+                                          ["fred", "bob", "root"])
+    rights = c.userinfo("bob", "rights")
+    print " new user rights are: %s" % rights
     print " checking new user can log in"
     c = disorder.client(user="bob", password="bobpass")
     c.version()
@@ -46,6 +51,34 @@ def test():
     except disorder.operationError:
       pass                              # good
     print " deleted user could no longer log in."
+    c = disorder.client()
+    users = c.users()
+    assert dtest.lists_have_same_contents(users,
+                                          ["fred", "root"])
+    print " creating the guest user"
+    dtest.command(["disorder",
+                   "--config", disorder._configfile, "--no-per-user-config",
+                   "--user", "root", "setup-guest"])
+    print " logging in as guest user"
+    gc = disorder.client(user="guest", password="")
+    gc.version()
+    print " testing user registration"
+    cs = gc.register("joe", "joepass", "joe@nowhere.invalid")
+    print " confirmation string is %s" % cs
+    print " checking unconfirmed user cannot log in"
+    jc = disorder.client(user="joe", password="joepass")
+    try:
+      jc.version()
+      print "*** should not be able to log in before confirmation ***"
+      assert False
+    except disorder.operationError:
+      pass                              # good
+    print " confirming user"
+    gc = disorder.client(user="guest", password="")
+    gc.confirm(cs)
+    print " checking confirmed user can log in"
+    jc = disorder.client(user="joe", password="joepass")
+    jc.version()
 
 if __name__ == '__main__':
     dtest.run()