r13539 - archetypes.memberdatastorage/trunk/archetypes/memberdatastorage/tests

"Raphael Ritz" <[email protected]> Tue, 29 Mar 2011 10:17:18 +0000
Newsgroups gmane.comp.web.zope.plone.archetypes.cvs
Message-ID <[email protected]>
Author: raphael
Date: Tue Mar 29 10:17:16 2011
New Revision: 13539

Modified:
   archetypes.memberdatastorage/trunk/archetypes/memberdatastorage/tests/test_memberpropertyfield.py
Log:
Extending test coverage to also check changing memberproperties affects fields on content items using a.mds.

Modified: archetypes.memberdatastorage/trunk/archetypes/memberdatastorage/tests/test_memberpropertyfield.py
==============================================================================
--- archetypes.memberdatastorage/trunk/archetypes/memberdatastorage/tests/test_memberpropertyfield.py	(original)
+++ archetypes.memberdatastorage/trunk/archetypes/memberdatastorage/tests/test_memberpropertyfield.py	Tue Mar 29 10:17:16 2011
@@ -56,6 +56,15 @@
         tear things down here.
         """
 
+    def _setup_memberarea(self, type='Document'):
+        self.membership.memberarea_type = type
+        self.membership.memberareaCreationFlag = 1
+
+    def _make_email_field(self, context):
+        from archetypes.memberdatastorage.memberpropertyfield \
+            import MemberPropertyField
+        context.schema.addField(MemberPropertyField('email',default='[email protected]'))
+        context.schema.initializeLayers(context)
 
     def test_fallback_use_of_memberpropertyfield(self):
 
@@ -108,15 +117,58 @@
         self.assertEquals(property_value, content_value)
         
 
+    def test_memberarea_creation(self):
+        #Create a member area
+        self._setup_memberarea()
+        self.login('user1')
+        self.portal.logged_in()
+        
+        #Add email field and assign value
+        home = self.membership.getHomeFolder()
+        self._make_email_field(home)
+        home.schema['email'].set(home, '[email protected]')
+        
+        content_email = home.schema['email'].get(home)
+        #Just to make sure...
+        self.assertEqual('[email protected]', content_email)
+        
+        #It should exist as a property - (If we use getAuthenticatedMember() it won't work)
+        member = self.membership.getMemberById('user1')
+        property_email = member.getProperty('email')
+        
+        self.assertEqual(content_email, property_email)
+
+    def test_memberarea_with_escaped_login_name(self):
+        self._setup_memberarea()
+        userid = email = '[email protected]'
+        self.membership.addMember(userid, 'u1', ['Member'], [],
+                                  {'email': email,
+                                   'fullname': 'Escaped User'})
+
+        self.login(userid)
+        self.portal.logged_in()
+        
+        #Add email field and assign value
+        home = self.membership.getHomeFolder()
+        self._make_email_field(home)
+        home.schema['email'].set(home, '[email protected]')
+        
+        content_email = home.schema['email'].get(home)
+        #Just to make sure...
+        self.assertEqual('[email protected]', content_email)
+        
+        #It should exist as a property - (If we use getAuthenticatedMember() it won't work)
+        member = self.membership.getMemberById(userid)
+        property_email = member.getProperty('email')
+        
+        self.assertEqual(content_email, property_email)
+
+
     ## TODO: the fallback could be tested more rigorously; 
     ## test properties other than string type
 
 def test_suite():
-
     """This sets up a test suite that actually runs the tests in the class
     above
     """
-
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(TestMemberPropertyField))
-    return suite
+    return unittest.defaultTestLoader.loadTestsFromName(__name__)

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar