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.py
The 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.)