Changed definition of RodelbahnboxDictConverter: Now the value is just a dict.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Mon, 10 Mar 2014 20:56:27 +0000 (20:56 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Mon, 10 Mar 2014 20:56:27 +0000 (20:56 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wrpylib/trunk@1919 7aebc617-e5e2-0310-91dc-80fb5f6d2477

tests/test_wrmwmarkup.py
wrpylib/wrmwmarkup.py

index d0004d6cd5ccc492989b5e1141fa40831667ff52..5129704d2190cea1465522d82441db3b07132ca5 100644 (file)
@@ -40,8 +40,6 @@ def test_rodelbahnbox_to_sledrun():
 
 def test_RodelbahnboxDictConverter():
     v = wrpylib.wrmwmarkup.RodelbahnboxDictConverter()
-    class Sledrun(object):
-        pass
     other = collections.OrderedDict([
         (u'Position', (47.30982, 9.986508)),
         (u'Position oben', (None, None)),
@@ -66,7 +64,7 @@ def test_RodelbahnboxDictConverter():
         (u'Bild', u'Rodelbahn Bergkristallh├╝tte 2009-03-03.jpg'),
         (u'In ├ťbersichtskarte', True),
         (u'Forumid', 72)])
-    sledrun = v.to_python((other, Sledrun()))
+    sledrun = v.to_python(other)
     assert sledrun.forum_id == 72
     other2 = v.from_python(sledrun)
     assert other == other2
index a2fb83126d0501bc919a702297afd970f2701a6b..4b4682a6f9578da57778e2bfd35b01542f4f2027 100644 (file)
@@ -74,8 +74,14 @@ class RodelbahnboxDictConverter(formencode.Validator):
     """Converts a dict with Rodelbahnbox properties to a Sledrun class. Does no validation."""
 
     def to_python(self, value, state=None):
-        """value is a tuple (props, sledrun) where the sledrun class will be populated or updated."""
-        props, sledrun = value
+        """value is a dict of properties. If state is an object with the attribute sledrun, this sledrun class will be populated or updated."""
+        props = value
+        if isinstance(state, object) and hasattr(state, 'sledrun'):
+            sledrun = state.sledrun
+        else:
+            class Sledrun(object):
+                pass
+            sledrun = Sledrun()
         for k, v in props.iteritems():
             if   k == u'Position': sledrun.position_latitude, sledrun.position_longitude = v
             elif k == u'Position oben': sledrun.top_latitude, sledrun.top_longitude = v