source: products/qMemberdataExport/tags/0.0.1/tests/commonTestingStuff.py @ 3664

Last change on this file since 3664 was 1, checked in by myroslav, 18 years ago

Building directory structure

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1from DateTime import DateTime
2
3from Products.CMFCore.utils import getToolByName
4
5from Products.PloneTestCase import PloneTestCase
6
7from Products.qMemberdataExport.config import *
8
9PRODUCTS=('qMemberdataExport',)
10
11map(PloneTestCase.installProduct, PRODUCTS)
12PloneTestCase.setupPloneSite(products=PRODUCTS)
13
14PRODUCT = 'qMemberdataExport'
15
16def maps_login(self, role):
17    """  Utility method for login under required role """
18    from Testing.ZopeTestCase.PortalTestCase import user_name, user_password
19    if role == 'manager':
20        self.loginAsPortalOwner()
21    elif role == 'member':
22        self.login(user_name)
23    elif role == 'another_member':
24        self.login('another_member')
25    elif role == 'anonym':
26        self.logout()
27
28def parseCSV(self, data):
29    """ Utility function for parsing csv and extracting some data form portal_memberdata """
30    import csv
31    from cStringIO import StringIO
32
33    props = ['id',] + getToolByName(self.portal, 'portal_memberdata').propertyIds()
34    reader = csv.DictReader(StringIO(data), fieldnames = props, quoting=csv.QUOTE_ALL)
35    i = 0
36    res = []
37    for row in reader:
38        properties = {}
39        if i != 0 and row['id'] != 'test_user_1_':
40            for field in row.keys():
41                if field in PROPERTIES_TO_COMPARE: properties[field] = row[field]
42            res.append(properties)
43        i += 1
44    self.failUnless(i-2 == len(PORTAL_MEMBERS), 'CSV output does not matcht to amount of portal members')
45    members = [memb.copy() for memb in PORTAL_MEMBERS]
46    for memb in members: del memb['roles']
47    return (members, res)
48
49def addMember(self, username, fullname, email, roles, last_login_time):
50    """ Utility function for simpler way of adding portal members with default password 'secret' """
51    self.membership.addMember(username, 'secret', roles, [])
52    member = self.membership.getMemberById(username)
53    member.setMemberProperties({'fullname': fullname, 'email': email,
54                                'last_login_time': DateTime(last_login_time),})
55
56# testing stuff for adding members to portal
57
58PROPERTIES_TO_COMPARE = ['id', 'fullname', 'email', 'last_login_time']
59
60PORTAL_MEMBERS = [{
61                   'id'              : 'Fred',
62                   'fullname'        : 'Fred Flintstone',
63                   'email'           : 'fred@bedrock.com',
64                   'roles'           : ['Member', 'Reviewer'],
65                   'last_login_time' : '2002/01/01'},
66                  {
67                   'id'              : 'admin',
68                   'fullname'        : 'Admin',
69                   'email'           : 'admin@admin.com',
70                   'roles'           : ['Manager'],
71                   'last_login_time' : '2003/12/28'},
72                  {
73                   'id'              : 'barney',
74                   'fullname'        : 'Barney Rubble',
75                   'email'           : 'barney@bedrock.com',
76                   'roles'           : ['Member'],
77                   'last_login_time' : '2002/01/01'},
78                  {
79                   'id'              : 'brubble',
80                   'fullname'        : 'Bambam Rubble',
81                   'email'           : 'bambam@bambam.net',
82                   'roles'           : ['Member'],
83                   'last_login_time' :  '2003/12/31'},
84                 ]
Note: See TracBrowser for help on using the repository browser.