User Password
*************

:Test-Layer: functional

Ung, this test kind of sucks, but I wrote it with a broken foot, so that's
my excuse.

Let's create a new user, and put it in the test database's 'admin' group, 
which gives it edit privies:

  >>> gumsite = getRootFolder()['gumsite']
  >>> from gum.user import User
  >>> caveman = User('caveman',
  ...   **{'cn' : 'Cave Cop',
  ...      'sn' : 'Flintstone',
  ...      'givenName' : 'Fred',}
  ... )  
  >>> gumsite['users'][caveman.__name__] = caveman
  >>> from zope.component import getMultiAdapter
  >>> from zope.publisher.browser import TestRequest
  >>> request = TestRequest()
  >>> request.form['gid'] = 'admin'
  >>> class TestPrincipal(object):
  ...     id = 'caveman'
  ...     title = 'Cave Cop'
  >>> request.setPrincipal( TestPrincipal() )
  >>> grant_membership_view = getMultiAdapter((caveman, request),name='grant')
  >>> grant_membership_view.update()
  >>> u'caveman' in gumsite['groups']['admin'].uids
  True

We'll set the password to "secret":

  >>> caveman.changePassword('pew','pew')

Now let's try view a protected edit page:

  >>> adduserview = getMultiAdapter((gumsite, request),name='adduser')
  >>> adduserview.render()
  u'<html...'
 
OK, let's clean-up:

  >>> del gumsite['users']['caveman']

