[CalendarServer-changes] [8530] CalendarServer/branches/users/glyph/skip-lonely-vtimezones

source_changes at macosforge.org source_changes at macosforge.org
Fri Jan 13 14:03:09 PST 2012


Revision: 8530
          http://trac.macosforge.org/projects/calendarserver/changeset/8530
Author:   glyph at apple.com
Date:     2012-01-13 14:03:09 -0800 (Fri, 13 Jan 2012)
Log Message:
-----------
Move requirements-merging functionality to separate method.

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/skip-lonely-vtimezones/txdav/common/datastore/upgrade/test/test_migrate.py

Property Changed:
----------------
    CalendarServer/branches/users/glyph/skip-lonely-vtimezones/

Modified: CalendarServer/branches/users/glyph/skip-lonely-vtimezones/txdav/common/datastore/upgrade/test/test_migrate.py
===================================================================
--- CalendarServer/branches/users/glyph/skip-lonely-vtimezones/txdav/common/datastore/upgrade/test/test_migrate.py	2012-01-13 22:03:05 UTC (rev 8529)
+++ CalendarServer/branches/users/glyph/skip-lonely-vtimezones/txdav/common/datastore/upgrade/test/test_migrate.py	2012-01-13 22:03:09 UTC (rev 8530)
@@ -139,13 +139,7 @@
 
         requirements = CommonTests.requirements
         extras = deriveValue(self, "extraRequirements", lambda t: {})
-        for homeUID in extras:
-            homereq = requirements.setdefault(homeUID, {})
-            homeExtras = extras[homeUID]
-            for calendarUID in homeExtras:
-                calreq = homereq.setdefault(calendarUID, {})
-                calendarExtras = homeExtras[calendarUID]
-                calreq.update(calendarExtras)
+        requirements = self.mergeRequirements(requirements, extras)
 
         yield populateCalendarsFrom(requirements, fileStore)
         md5s = CommonTests.md5s
@@ -163,6 +157,31 @@
             ".some-extra-data").setContent("some extra data")
 
 
+    def mergeRequirements(self, a, b):
+        """
+        Merge two requirements dictionaries together, modifying C{a} and
+        returning it.
+
+        @param a: Some requirements, in the format of
+            L{CommonTests.requirements}.
+        @type a: C{dict}
+
+        @param b: Some additional requirements, to be merged into C{a}.
+        @type b: C{dict}
+
+        @return: C{a}
+        @rtype: C{dict}
+        """
+        for homeUID in b:
+            homereq = a.setdefault(homeUID, {})
+            homeExtras = b[homeUID]
+            for calendarUID in homeExtras:
+                calreq = homereq.setdefault(calendarUID, {})
+                calendarExtras = homeExtras[calendarUID]
+                calreq.update(calendarExtras)
+        return a
+
+
     @withSpecialValue(
         "extraRequirements",
         {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120113/97ce76a1/attachment.html>


More information about the calendarserver-changes mailing list