X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/ba39faf632da43d64106536f256153c2092346e4..05438e8999dbc0edc4cc82c3df4cc5efdedb777e:/tests/user.py diff --git a/tests/user.py b/tests/user.py index 74f0212..ffc1fdc 100755 --- a/tests/user.py +++ b/tests/user.py @@ -1,7 +1,7 @@ #! /usr/bin/env python # # This file is part of DisOrder. -# Copyright (C) 2007 Richard Kettlewell +# Copyright (C) 2007, 2008 Richard Kettlewell # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -55,8 +55,15 @@ def test(): 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 = c.register("joe", "joepass", "joe@nowhere.invalid") + 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") @@ -67,10 +74,27 @@ def test(): except disorder.operationError: pass # good print " confirming user" - c.confirm(cs) + 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() + print " checking new user's email address" + assert c.userinfo("joe", "email") == "joe@nowhere.invalid" + print " checking can change user email address" + c.edituser("joe", "email", "joe@another.invalid") + assert c.userinfo("joe", "email") == "joe@another.invalid" + print " checking bad email address rejected" + try: + c.edituser("joe", "email", "invalid") + print "*** should not be able to set invalid email address ***" + assert False + except disorder.operationError: + pass # good + assert c.userinfo("joe", "email") == "joe@another.invalid" + print " checking removal of email address" + c.edituser("joe", "email", "") + assert c.userinfo("joe", "email") == None if __name__ == '__main__': dtest.run()