Added a RodelbahnboxValidator
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sat, 8 Mar 2014 19:42:46 +0000 (19:42 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sat, 8 Mar 2014 19:42:46 +0000 (19:42 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wrpylib/trunk@1910 7aebc617-e5e2-0310-91dc-80fb5f6d2477

tests/test_wrvalidators.py
wrpylib/wrvalidators.py

index c28c5764b2f6b9a54eacc8887d2c4c7adad1da86..d2839a9906593ef35b33f0b956cdbb0e38ebed8b 100644 (file)
@@ -275,3 +275,35 @@ def test_SledRental():
     assert v.from_python((False, None)) == u'Nein'
     assert v.from_python((True, u'Talstation (nur mit Ticket); Schneealm')) == u'Talstation (nur mit Ticket); Schneealm'
     assert v.from_python((True, u'Ja')) == u'Ja'
+
+
+def test_RodelbahnboxValidator():
+    v = wrpylib.wrvalidators.RodelbahnboxValidator()
+    other = {
+        u'Position': u'47.309820 N 9.986508 E',
+        u'Position oben': u'',
+        u'Höhe oben': u'1244',
+        u'Position unten': u'',
+        u'Höhe unten': u'806',
+        u'Länge': u'5045',
+        u'Schwierigkeit': u'',
+        u'Lawinen': u'gelegentlich',
+        u'Betreiber': u'',
+        u'Öffentliche Anreise': u'Ja',
+        u'Gehzeit': u'105',
+        u'Aufstieg möglich': u'Ja',
+        u'Aufstieg getrennt': u'Nein',
+        u'Aufstiegshilfe': u'Nein',
+        u'Beleuchtungsanlage': u'Nein',
+        u'Beleuchtungstage': u'',
+        u'Rodelverleih': u'Ja',
+        u'Gütesiegel': u'',
+        u'Webauskunft': u'',
+        u'Telefonauskunft': u'+43-664-1808482 (Bergkristallhütte)',
+        u'Bild': u'Rodelbahn Bergkristallhütte 2009-03-03.jpg',
+        u'In Übersichtskarte': u'Ja',
+        u'Forumid': u'72'}
+    python = v.to_python(other, None)
+    other2 = v.from_python(python, None)
+    assert other == other2
+
index a4cc1051d7eab48f93403c07e5916c130c266344..2b43cab87897505f2f022b2b60d2e12718ed3f4b 100644 (file)
@@ -745,3 +745,31 @@ class SledRental(BoolUnicodeTupleValidator):
     u'Talstation (nur mit Ticket); Schneealm' <=> (True, u'Talstation (nur mit Ticket); Schneealm')"""
     def __init__(self):
         BoolUnicodeTupleValidator.__init__(self, Loop(ValueCommentList()))
+
+
+class RodelbahnboxValidator(formencode.Schema):
+    """Takes the fields of the Rodelbahnbox as dict of strings and returns them as dict of appropriet types."""
+    def __init__(self):
+        self.add_field(u'Position', GeoNone()) # '47.583333 N 15.75 E'
+        self.add_field(u'Position oben', GeoNone()) # '47.583333 N 15.75 E'
+        self.add_field(u'Höhe oben', UnsignedNone()) # '2000'
+        self.add_field(u'Position unten', GeoNone()) # '47.583333 N 15.75 E'
+        self.add_field(u'Höhe unten', UnsignedNone()) # '1200'
+        self.add_field(u'Länge', UnsignedNone()) # 3500
+        self.add_field(u'Schwierigkeit', GermanDifficulty()) # 'mittel'
+        self.add_field(u'Lawinen', GermanAvalanches()) # 'kaum'
+        self.add_field(u'Betreiber', UnicodeNone()) # 'Max Mustermann'
+        self.add_field(u'Öffentliche Anreise', GermanPublicTransport()) # 'Mittelmäßig'
+        self.add_field(u'Aufstieg möglich', GermanBoolNone()) # 'Ja'
+        self.add_field(u'Aufstieg getrennt', GermanTristateFloatComment()) # 'Ja'
+        self.add_field(u'Gehzeit', UnsignedNone()) # 90
+        self.add_field(u'Aufstiegshilfe', GermanLift()) # 'Gondel (unterer Teil)'
+        self.add_field(u'Beleuchtungsanlage', GermanTristateFloatComment())
+        self.add_field(u'Beleuchtungstage', UnsignedCommentNone(7)) # '3 (Montag, Mittwoch, Freitag)'
+        self.add_field(u'Rodelverleih', SledRental()) # 'Talstation Serlesbahnan'
+        self.add_field(u'Gütesiegel', GermanCachet()) # 'Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'
+        self.add_field(u'Webauskunft', UrlNeinNone()) # 'http://www.nösslachhütte.at/page9.php'
+        self.add_field(u'Telefonauskunft', PhoneCommentListNeinLoopNone(comments_are_optional=False)) # '+43-664-5487520 (Mitterer Alm)'
+        self.add_field(u'Bild', UnicodeNone())
+        self.add_field(u'In Übersichtskarte', GermanBoolNone())
+        self.add_field(u'Forumid', UnsignedNeinNone())