grouaprchy.login provides a login process that allow using multiple fields to identify the user and then disambiguate from there.
>>> from Products.Five.testbrowser import Browser >>> browser = Browser() >>> browser.handleErrors = False >>> browser.open(self.portal.absolute_url())>>> browser.getLink('Log in').click() >>> print browser.contents <!DOCTYPE html PUBLIC... <legend>Please log in</legend> ...</html>
Users can log in by full name:
>>> from Testing.ZopeTestCase import user_password, user_name
>>> browser.getControl('Login').value = 'First Test User'
>>> browser.getControl('Password').value = user_password
>>> browser.getControl('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<a href="http://nohost/plone/logout">Log out</a>
...</html>
>>> browser.getLink('My Folder').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 id="parent-fieldname-title" class="documentFirstHeading...">
test_user_1_
</h1>
...</html>
>>> browser.getLink('Log out').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged out</h1>
...</html>
or by email:
>>> browser.getControl('Login').value = user_name+'@foo.com'
>>> browser.getControl('Password').value = user_password
>>> browser.getControl('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged in</h1>
...</html>
>>> browser.getLink('My Folder').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 id="parent-fieldname-title" class="documentFirstHeading...">
test_user_1_
</h1>
...</html>
>>> browser.getLink('Log out').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged out</h1>
...</html>
or by login name:
>>> browser.getControl('Login').value = user_name
>>> browser.getControl('Password').value = user_password
>>> browser.getControl('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged in</h1>
...</html>
>>> browser.getLink('My Folder').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 id="parent-fieldname-title" class="documentFirstHeading...">
test_user_1_
</h1>
...</html>
>>> browser.getLink('Log out').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged out</h1>
...</html>