X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/ba39faf632da43d64106536f256153c2092346e4..c9467b7a34160c4e25580a2dc82087c5ae0bb2d0:/tests/user.py diff --git a/tests/user.py b/tests/user.py index 74f0212..f55336e 100755 --- a/tests/user.py +++ b/tests/user.py @@ -1,22 +1,20 @@ #! /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 +# 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 -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA +# along with this program. If not, see . # import dtest,disorder @@ -55,8 +53,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 +72,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()