collective.recipe.plonesite is a cool Buildout recipe that enables you to create and update a Plone site as part of a buildout run.
I added the following lines to my buildout configuration:
parts =
…
plonesite
[plonesite]
recipe = collective.recipe.plonesite
profiles = my.project:default
post-extras = ${buildout:directory}/acceptance-tests/add_test_users.pyThe code of the add_test_users.py script is pretty straightforward:
"""This script will add a number of test users to a Plone site.
You can used it in post-extras option of collective.recipe.plonesite. It will
be evaluated after running QuickInstaller and GenericSetup profiles.
@param portal: The Plone site as defined by the site-id option
"""
import logging
logger = logging.getLogger('collective.recipe.plonesite')
test_users = [
# (username, password, group),
('username1', 'password1', 'group1'),
('username2', 'password2', 'group2'),
('username3', 'password3', 'group3'),
]
for username, password, group in test_users:
if username not in portal.acl_users.getUserIds():
try:
portal.portal_registration.addMember(username, password)
portal.portal_groups.addPrincipalToGroup(username, group)
except ValueError:
logger.warn('The login name "%s" is not valid.' % username)
except KeyError:
logger.warn('The group "%s" is not valid.' % group)
Enjoy!
(Next time I'll give you my first impressions on SeleniumLibrary, a web testing library for Robot Framework, I'm using to write the tests.)