[Checkins] SVN: Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/ - added BBB code for importing old profiles

Yvo Schubbe y.2010 at wcm-solutions.de
Tue Jun 15 05:29:27 EDT 2010


Log message for revision 113476:
  - added BBB code for importing old profiles

Changed:
  U   Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/cookieauth.py
  U   Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/tests/test_cookieauth.py

-=-
Modified: Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/cookieauth.py
===================================================================
--- Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/cookieauth.py	2010-06-15 09:23:52 UTC (rev 113475)
+++ Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/cookieauth.py	2010-06-15 09:29:26 UTC (rev 113476)
@@ -53,11 +53,23 @@
         if self.environ.shouldPurge():
             self._purgeProperties()
 
+        self._migrateProperties(node)
         self._initProperties(node)
 
         self._logger.info('Cookie crumbler imported.')
 
+    def _migrateProperties(self, node):
+        # BBB: for CMF 2.2 settings
+        for child in node.childNodes:
+            if child.nodeName != 'property':
+                continue
+            if child.getAttribute('name') not in ('auto_login_page',
+                                                'unauth_page', 'logout_page'):
+                continue
+            node.removeChild(child)
+            child.unlink()
 
+
 def importCookieCrumbler(context):
     """Import cookie crumbler settings from an XML file.
     """

Modified: Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/tests/test_cookieauth.py
===================================================================
--- Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/tests/test_cookieauth.py	2010-06-15 09:23:52 UTC (rev 113475)
+++ Products.CMFCore/branches/cookiecrumbler_with_views/Products/CMFCore/exportimport/tests/test_cookieauth.py	2010-06-15 09:29:26 UTC (rev 113476)
@@ -67,7 +67,23 @@
 </object>
 """
 
+_CMF22_IMPORT = """\
+<?xml version="1.0"?>
+<object name="foo_cookiecrumbler" meta_type="Cookie Crumbler">
+ <property name="auth_cookie">value1</property>
+ <property name="name_cookie">value3</property>
+ <property name="pw_cookie">value5</property>
+ <property name="persist_cookie">value4</property>
+ <property name="auto_login_page">value6</property>
+ <property name="logout_page">value8</property>
+ <property name="unauth_page">value7</property>
+ <property name="local_cookie_path">True</property>
+ <property name="cache_header_value">value2</property>
+ <property name="log_username">False</property>
+</object>
+"""
 
+
 class CookieCrumblerXMLAdapterTests(BodyAdapterTestCase, unittest.TestCase):
 
     layer = ExportImportZCMLLayer
@@ -158,7 +174,26 @@
         self.assertEqual( cc.pw_cookie, 'value5' )
         self.assertEqual( cc.local_cookie_path, 1 )
 
+    def test_migration(self):
+        from Products.CMFCore.exportimport.cookieauth \
+                import importCookieCrumbler
 
+        site = self._initSite()
+        cc = site.cookie_authentication
+
+        context = DummyImportContext(site)
+        context._files['cookieauth.xml'] = _CMF22_IMPORT
+        importCookieCrumbler(context)
+
+        self.assertEqual( cc.auth_cookie, 'value1' )
+        self.assertEqual( cc.cache_header_value, 'value2' )
+        self.assertEqual( cc.name_cookie, 'value3' )
+        self.assertEqual( cc.log_username, 0 )
+        self.assertEqual( cc.persist_cookie, 'value4' )
+        self.assertEqual( cc.pw_cookie, 'value5' )
+        self.assertEqual( cc.local_cookie_path, 1 )
+
+
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(CookieCrumblerXMLAdapterTests),



More information about the checkins mailing list