[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