[Checkins] SVN: GenericSetup/branches/tseaver-bbq_sprint/t - Guard against unicode profile IDs blocking report generation.

Tres Seaver tseaver at palladion.com
Sat Mar 17 12:54:23 EDT 2007


Log message for revision 73302:
   - Guard against unicode profile IDs blocking report generation.

Changed:
  U   GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py
  U   GenericSetup/branches/tseaver-bbq_sprint/tool.py

-=-
Modified: GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py
===================================================================
--- GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py	2007-03-17 16:37:26 UTC (rev 73301)
+++ GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py	2007-03-17 16:54:23 UTC (rev 73302)
@@ -340,6 +340,28 @@
         logged = [x for x in tool.objectIds('File') if x.startswith(prefix)]
         self.assertEqual(len(logged), 1)
 
+    def test_runAllImportSteps_unicode_profile_id_creates_reports( self ):
+
+        TITLE = 'original title'
+        PROFILE_ID = u'testing'
+        site = self._makeSite( TITLE )
+        tool = self._makeOne('setup_tool').__of__( site )
+        tool._import_context_id = PROFILE_ID
+
+        registry = tool.getImportStepRegistry()
+        registry.registerStep( 'dependable', '1'
+                             , _underscoreSiteTitle, ( 'purging', ) )
+        registry.registerStep( 'dependent', '1'
+                             , _uppercaseSiteTitle, ( 'dependable', ) )
+        registry.registerStep( 'purging', '1'
+                             , _purgeIfRequired )
+
+        tool.runAllImportSteps()
+
+        prefix = ('import-all-%s' % PROFILE_ID).encode('UTF-8')
+        logged = [x for x in tool.objectIds('File') if x.startswith(prefix)]
+        self.assertEqual(len(logged), 1)
+
     def test_runAllImportSteps_sorted_explicit_purge( self ):
 
         site = self._makeSite()

Modified: GenericSetup/branches/tseaver-bbq_sprint/tool.py
===================================================================
--- GenericSetup/branches/tseaver-bbq_sprint/tool.py	2007-03-17 16:37:26 UTC (rev 73301)
+++ GenericSetup/branches/tseaver-bbq_sprint/tool.py	2007-03-17 16:54:23 UTC (rev 73302)
@@ -927,6 +927,10 @@
         if isinstance(report, unicode):
             report = report.encode('latin-1')
 
+        # BBB: ObjectManager won't allow unicode IDS
+        if isinstance(name, unicode):
+            name = name.encode('UTF-8')
+
         file = File(id=name,
                     title='',
                     file=report,



More information about the Checkins mailing list