[Checkins] SVN: Products.GenericSetup/trunk/Products/GenericSetup/ Provide default for dependencies when processing metadata.xml, to avoid a

Tres Seaver tseaver at palladion.com
Wed Aug 6 12:49:51 EDT 2008


Log message for revision 89453:
  Provide default for dependencies when processing metadata.xml, to avoid a
  KeyError.  (https://bugs.launchpad.net/zope-cmf/+bug/255301)
  

Changed:
  U   Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt
  U   Products.GenericSetup/trunk/Products/GenericSetup/metadata.py
  U   Products.GenericSetup/trunk/Products/GenericSetup/tests/test_profile_metadata.py

-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt	2008-08-06 16:49:19 UTC (rev 89452)
+++ Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt	2008-08-06 16:49:49 UTC (rev 89453)
@@ -4,6 +4,10 @@
 GenericSetup 1.5.0 (unreleased)
 -------------------------------
 
+- Provide default for dependencies when processing metadata.xml, to
+  avoid a KeyError.
+  (https://bugs.launchpad.net/zope-cmf/+bug/255301)
+
 - Handle utility factories cleanly if zope.component >=3.5.0 is used.
  
 - tool and utils: Removed deprecated code.

Modified: Products.GenericSetup/trunk/Products/GenericSetup/metadata.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/metadata.py	2008-08-06 16:49:19 UTC (rev 89452)
+++ Products.GenericSetup/trunk/Products/GenericSetup/metadata.py	2008-08-06 16:49:49 UTC (rev 89453)
@@ -12,7 +12,7 @@
 ##############################################################################
 """ GenericSetup profile metadata
 
-$Id:$
+$Id$
 """
 import os
 
@@ -66,7 +66,7 @@
             { '#text': { KEY: None },
               },
             'dependencies':
-            {'dependency': { KEY: None },},
+            {'dependency': { KEY: None, DEFAULT: () },},
             'dependency':
             { '#text': { KEY: None },
               },

Modified: Products.GenericSetup/trunk/Products/GenericSetup/tests/test_profile_metadata.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tests/test_profile_metadata.py	2008-08-06 16:49:19 UTC (rev 89452)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tests/test_profile_metadata.py	2008-08-06 16:49:49 UTC (rev 89453)
@@ -45,6 +45,20 @@
     'dependencies': (dep1, dep2),
     }
 
+_METADATA_EMPTY_DEPENDENCIES_XML = """<?xml version="1.0"?>
+<metadata>
+  <description>%s</description>
+  <version>%s</version>
+  <dependencies></dependencies>
+</metadata>
+""" % (desc, version)
+
+_METADATA_MAP_EMPTY_DEPENDENCIES = {
+    'description': desc,
+    'version': version,
+    'dependencies': (),
+    }
+
 class ProfileMetadataTests( ZopeTestCase ):
 
     installProduct('GenericSetup')
@@ -65,6 +79,12 @@
         self.assertEqual(profile_info['description'],
                          'Description from metadata')
 
+    def test_parseXML_empty_dependencies(self):
+        # https://bugs.launchpad.net/bugs/255301
+        metadata = ProfileMetadata( '')
+        parsed = metadata.parseXML(_METADATA_EMPTY_DEPENDENCIES_XML)
+        self.assertEqual(parsed, _METADATA_MAP_EMPTY_DEPENDENCIES)
+
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite( ProfileMetadataTests ),



More information about the Checkins mailing list