#!/usr/bin/python2.6 # -*- coding: iso-8859-15 -*- import wrpylib.wrvalidators import formencode def test_NoneValidator(): v = wrpylib.wrvalidators.NoneValidator(wrpylib.wrvalidators.Unicode()) assert v.to_python(u'') == None assert v.from_python(None) == u'' def test_UnsignedNone(): v = wrpylib.wrvalidators.UnsignedNone() assert v.to_python(u'42') == 42 assert v.to_python(u'') == None assert v.from_python(42) == u'42' assert v.from_python(None) == u'' def test_GeoNone(): coord = u'47.076207 N 11.453553 E' v = wrpylib.wrvalidators.GeoNone() (lat, lon) = v.to_python(coord) assert lat == 47.076207 assert lon == 11.453553 assert v.to_python(u'') == (None, None) assert v.from_python((lat, lon)) == coord assert v.from_python((None, None)) == u'' def test_GermanTristateTuple(): v = wrpylib.wrvalidators.GermanTristateTuple() assert v.to_python(u'') == (None, None) assert v.to_python(u'Ja') == (True, False) assert v.to_python(u'Nein') == (False, True) assert v.to_python(u'Teilweise') == (True, True) assert v.from_python((None, None)) == u'' assert v.from_python((False, True)) == u'Nein' assert v.from_python((True, False)) == u'Ja' assert v.from_python((True, True)) == u'Teilweise' def tes_GermanTristateFloat(): v = wrpylib.wrvalidators.GermanTristateFloat() assert v.to_python(u'') == None assert v.to_python(u'Ja') == 1.0 assert v.to_python(u'Nein') == 0.0 assert v.to_python(u'Teilweise') == 0.5 assert v.from_python(None) == u'' assert v.from_python(0.0) == u'Nein' assert v.from_python(1.0) == u'Ja' assert v.from_python(0.5) == u'Teilweise' def test_ValueCommentList(): v = wrpylib.wrvalidators.ValueCommentList() assert v.to_python(u'abc') == [(u'abc', None)] assert v.to_python(u'abc def') == [(u'abc def', None)] assert v.to_python(u'value (comment)') == [(u'value', u'comment')] assert v.to_python(u'value (comment)') == [(u'value', u'comment')] assert v.to_python(u'value1 (comment); value2') == [(u'value1', u'comment'), (u'value2', None)] assert v.to_python(u'value1 (comment1); value2; value3 (comment3)') == [(u'value1', u'comment1'), (u'value2', None), ('value3', 'comment3')] assert v.to_python(u'value1 (comment1); value2 (test (not easy))') == [(u'value1', u'comment1'), (u'value2', u'test (not easy)')] def test_UrlNeinNone(): v = wrpylib.wrvalidators.UrlNeinNone() assert v.to_python(u'') == None assert v.to_python(u'Nein') == u'Nein' assert v.to_python(u'http://www.höttingeralm.at') == u'http://www.höttingeralm.at' assert v.from_python(None) == u'' assert v.from_python(u'Nein') == u'Nein' assert v.from_python(u'http://www.höttingeralm.at') == u'http://www.höttingeralm.at' def test_ValueCommentListNeinLoopNone(): v = wrpylib.wrvalidators.ValueCommentListNeinLoopNone() assert v.to_python(u'') == None assert v.to_python(u'Nein') == u'Nein' assert v.to_python(u'T-Mobile (gut); A1') == u'T-Mobile (gut); A1' assert v.from_python(None) == u'' assert v.from_python(u'Nein') == u'Nein' assert v.from_python(u'T-Mobile (gut); A1') == u'T-Mobile (gut); A1' def test_PhoneCommentListNeinLoopNone(): v = wrpylib.wrvalidators.PhoneCommentListNeinLoopNone(comments_are_optional=True) assert v.to_python(u'') == None assert v.to_python(u'Nein') == u'Nein' assert v.to_python(u'+43-699-1234567 (nicht nach 20:00 Uhr); +43-512-123456') == u'+43-699-1234567 (nicht nach 20:00 Uhr); +43-512-123456' assert v.from_python(None) == u'' assert v.from_python(u'Nein') == u'Nein' assert v.from_python(u'+43-699-1234567 (nicht nach 20:00 Uhr); +43-512-123456') == u'+43-699-1234567 (nicht nach 20:00 Uhr); +43-512-123456' def test_EmailCommentListNeinLoopNone(): v = wrpylib.wrvalidators.EmailCommentListNeinLoopNone() assert v.to_python(u'') == None assert v.to_python(u'Nein') == u'Nein' assert v.to_python(u'first@example.com') == u'first@example.com' assert v.to_python(u'first@example.com (Nur Winter); second@example.com') == u'first@example.com (Nur Winter); second@example.com' assert v.from_python(None) == u'' assert v.from_python(u'Nein') == u'Nein' assert v.from_python(u'first@example.com') == u'first@example.com' assert v.from_python(u'first@example.com (Nur Winter); second@example.com') == u'first@example.com (Nur Winter); second@example.com' def test_GermanLift(): v = wrpylib.wrvalidators.GermanLift() assert v.to_python(u'') == (None, None) assert v.to_python(u'Nein') == (False, None) assert v.to_python(u'Sessellift (4 Euro)') == (True, u'Sessellift (4 Euro)') assert v.from_python((None, None)) == u'' assert v.from_python((False, None)) == u'Nein' assert v.from_python((True, u'Sessellift (4 Euro)')) == u'Sessellift (4 Euro)' def test_WikiPageListLoopNone(): v = wrpylib.wrvalidators.WikiPageListLoopNone() assert v.to_python(u'') == None assert v.to_python(u'[[Birgitzer Alm]]; [[Kemater Alm]]') == u'[[Birgitzer Alm]]; [[Kemater Alm]]' assert v.from_python(None) == u'' assert v.from_python(u'[[Birgitzer Alm]]; [[Kemater Alm]]') == u'[[Birgitzer Alm]]; [[Kemater Alm]]' def test_BoolUnicodeTupleValidator(): v = wrpylib.wrvalidators.BoolUnicodeTupleValidator() assert v.to_python(u'') == (None, None) assert v.to_python(u'Nein') == (False, None) assert v.to_python(u'any text') == (True, u'any text') assert v.from_python((None, None)) == u'' assert v.from_python((False, None)) == u'Nein' assert v.from_python((True, u'any text')) == u'any text' def test_SledRental(): v = wrpylib.wrvalidators.SledRental() assert v.to_python(u'') == (None, None) assert v.to_python(u'Nein') == (False, None) assert v.to_python(u'Ja') == (True, u'Ja') assert v.to_python(u'Talstation (nur mit Ticket); Schneealm') == (True, u'Talstation (nur mit Ticket); Schneealm') assert v.from_python((None, None)) == u'' 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'