import unittest
from wrpylib.wrvalidators import *
-# TODO: optional converter
+# optional converter
# ------------------
+class TestOpt(unittest.TestCase):
+ def test_from_str(self):
+ self.assertEqual(None, opt_from_str('', str_from_str))
+ self.assertEqual('abc', opt_from_str('abc', str_from_str))
+ self.assertEqual(None, opt_from_str('', int_from_str))
+ self.assertEqual(4, opt_from_str('4', int_from_str))
+
+ def test_to_str(self):
+ self.assertEqual('', opt_to_str(None, str_to_str))
+ self.assertEqual('abc', opt_to_str('abc', str_to_str))
+ self.assertEqual('', opt_to_str(None, int_to_str))
+ self.assertEqual('4', opt_to_str(4, int_to_str))
+
+
# "no" converter
# --------------
class TestNoGermanConverter(unittest.TestCase):
def test_from_str(self):
- self.assertEqual((True, 'abc'), no_german_from_str('abc'))
- self.assertEqual((False, None), no_german_from_str('Nein'))
+ self.assertEqual((True, 'abc'), no_german_from_str('abc', req_str_from_str))
+ self.assertEqual((False, None), no_german_from_str('Nein', req_str_from_str))
with self.assertRaises(ValueError):
- no_german_from_str('')
+ no_german_from_str('', req_str_from_str)
def test_to_str(self):
- self.assertEqual('abc', no_german_to_str((True, 'abc')))
- self.assertEqual('Nein', no_german_to_str((False, None)))
+ self.assertEqual('abc', no_german_to_str((True, 'abc'), str_to_str))
+ self.assertEqual('Nein', no_german_to_str((False, None), str_to_str))
# "optional"/"no" converter
class TestOptNoGerman(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(opt_no_german_from_str('abc'), (True, 'abc'))
- self.assertEqual(opt_no_german_from_str('Nein'), (False, None))
- self.assertEqual(opt_no_german_from_str(''), (None, None))
+ self.assertEqual((True, 'abc'), opt_no_german_from_str('abc', str_from_str))
+ self.assertEqual((False, None), opt_no_german_from_str('Nein', str_from_str))
+ self.assertEqual((None, None), opt_no_german_from_str('', str_from_str))
def test_to_str(self):
- self.assertEqual(opt_no_german_to_str((True, 'abc')), 'abc')
- self.assertEqual(opt_no_german_to_str((False, None)), 'Nein')
- self.assertEqual(opt_no_german_to_str((None, None)), '')
+ self.assertEqual('abc', opt_no_german_to_str((True, 'abc'), str_to_str))
+ self.assertEqual('Nein', opt_no_german_to_str((False, None), str_to_str))
+ self.assertEqual('', opt_no_german_to_str((None, None), str_to_str))
-# TODO: choice converter
+# choice converter
# ----------------
+class TestCoice(unittest.TestCase):
+ def setUp(self):
+ self.choices = ['abc', 'def', 'ghi']
-# TODO: dict converter
-# --------------
+ def from_str(self):
+ self.assertEqual('abc', choice_from_str('abc', self.choices))
+ self.assertEqual('ghi', choice_from_str('ghi', self.choices))
+ with self.assertRaises(ValueError):
+ choice_from_str('jkl', self.choices)
+
+
+# dictkey converter
+# -----------------
+
+class TestDictkey(unittest.TestCase):
+ def setUp(self):
+ self.choices = {'abc': '1', 'def': '2', 'ghi': '3'}
+
+ def test_from_str(self):
+ self.assertEqual('abc', dictkey_from_str('1', self.choices))
+ self.assertEqual('ghi', dictkey_from_str('3', self.choices))
+ with self.assertRaises(ValueError):
+ dictkey_from_str('4', self.choices)
+
+ def test_to_str(self):
+ self.assertEqual('1', dictkey_to_str('abc', self.choices))
+ self.assertEqual('3', dictkey_to_str('ghi', self.choices))
# enum/"list" converter
class TestEnumConverter(unittest.TestCase):
def test_from_str(self):
- self.assertEqual([], enum_from_str(''))
- self.assertEqual(['abc'], enum_from_str('abc'))
- self.assertEqual(['abc', 'def'], enum_from_str('abc; def'))
- self.assertEqual(['abc', 'def', 'ghi'], enum_from_str('abc; def;ghi'))
+ self.assertEqual([], enum_from_str('', str_from_str))
+ self.assertEqual(['abc'], enum_from_str('abc', str_from_str))
+ self.assertEqual(['abc', 'def'], enum_from_str('abc; def', str_from_str))
+ self.assertEqual(['abc', 'def', 'ghi'], enum_from_str('abc; def;ghi', str_from_str))
def test_to_str(self):
- self.assertEqual('abc; def; ghi', enum_to_str(['abc', 'def', 'ghi']))
- self.assertEqual('abc', enum_to_str(['abc']))
- self.assertEqual('', enum_to_str(['']))
- self.assertEqual('', enum_to_str([]))
+ self.assertEqual('abc; def; ghi', enum_to_str(['abc', 'def', 'ghi'], str_to_str))
+ self.assertEqual('abc', enum_to_str(['abc'], str_to_str))
+ self.assertEqual('', enum_to_str([''], str_to_str))
+ self.assertEqual('', enum_to_str([], str_to_str))
# value/comment converter
class TestValueCommentConverter(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(('abc', 'defg'), value_comment_from_str('abc (defg)'))
- self.assertEqual(('abc', ''), value_comment_from_str('abc ()'))
- self.assertEqual(('', 'def'), value_comment_from_str('(def)'))
- self.assertEqual(('ab', '(cd)'), value_comment_from_str('ab((cd))'))
- self.assertEqual(('ab', '(c(d)[(]))'), value_comment_from_str('ab((c(d)[(])))'))
- self.assertEqual(('ab(', 'cd'), value_comment_from_str('ab((cd)'))
- self.assertEqual(('abcd', 'ef'), value_comment_from_str('abcd (ef) '))
- self.assertEqual(('abc', ''), value_comment_from_str('abc', comment_optional=True))
+ self.assertEqual(('abc', 'defg'), value_comment_from_str('abc (defg)', str_from_str, str_from_str))
+ self.assertEqual(('abc', ''), value_comment_from_str('abc ()', str_from_str, str_from_str))
+ self.assertEqual(('', 'def'), value_comment_from_str('(def)', str_from_str, str_from_str))
+ self.assertEqual(('ab', '(cd)'), value_comment_from_str('ab((cd))', str_from_str, str_from_str))
+ self.assertEqual(('ab', '(c(d)[(]))'), value_comment_from_str('ab((c(d)[(])))', str_from_str, str_from_str))
+ self.assertEqual(('ab(', 'cd'), value_comment_from_str('ab((cd)', str_from_str, str_from_str))
+ self.assertEqual(('abcd', 'ef'), value_comment_from_str('abcd (ef) ', str_from_str, str_from_str))
+ self.assertEqual(('abc', ''), value_comment_from_str('abc', str_from_str, str_from_str, comment_optional=True))
with self.assertRaises(ValueError):
- value_comment_from_str('abc (')
+ value_comment_from_str('abc (', str_from_str, str_from_str)
with self.assertRaises(ValueError):
- value_comment_from_str('abc )')
+ value_comment_from_str('abc )', str_from_str, str_from_str)
with self.assertRaises(ValueError):
- value_comment_from_str('abc (def)g')
+ value_comment_from_str('abc (def)g', str_from_str, str_from_str)
with self.assertRaises(ValueError):
- value_comment_from_str('abc (b))')
+ value_comment_from_str('abc (b))', str_from_str, str_from_str)
with self.assertRaises(ValueError):
- value_comment_from_str('abc')
+ value_comment_from_str('abc', str_from_str, str_from_str)
def test_to_str(self):
- self.assertEqual('abc (defg)', value_comment_to_str(('abc', 'defg')))
- self.assertEqual('abc ()', value_comment_to_str(('abc', '')))
- self.assertEqual('(def)', value_comment_to_str(('', 'def')))
- self.assertEqual('ab ((cd))', value_comment_to_str(('ab', '(cd)')))
- self.assertEqual('ab ((c(d)[(])))', value_comment_to_str(('ab', '(c(d)[(]))')))
- self.assertEqual('ab( (cd)', value_comment_to_str(('ab(', 'cd')))
- self.assertEqual('abcd (ef)', value_comment_to_str(('abcd', 'ef')))
- self.assertEqual('abc', value_comment_to_str(('abc', ''), comment_optional=True))
+ self.assertEqual('abc (defg)', value_comment_to_str(('abc', 'defg'), str_to_str, str_to_str))
+ self.assertEqual('abc ()', value_comment_to_str(('abc', ''), str_to_str, str_to_str))
+ self.assertEqual('(def)', value_comment_to_str(('', 'def'), str_to_str, str_to_str))
+ self.assertEqual('ab ((cd))', value_comment_to_str(('ab', '(cd)'), str_to_str, str_to_str))
+ self.assertEqual('ab ((c(d)[(])))', value_comment_to_str(('ab', '(c(d)[(]))'), str_to_str, str_to_str))
+ self.assertEqual('ab( (cd)', value_comment_to_str(('ab(', 'cd'), str_to_str, str_to_str))
+ self.assertEqual('abcd (ef)', value_comment_to_str(('abcd', 'ef'), str_to_str, str_to_str))
+ self.assertEqual('abc', value_comment_to_str(('abc', ''), str_to_str, str_to_str, comment_optional=True))
# string converter
self.assertEqual('', opt_uint_to_str(None))
-# TODO: bool converter
+# bool converter
# --------------
+class TestBoolGerman(unittest.TestCase):
+ def test_from_str(self):
+ self.assertEqual(True, bool_german_from_str('Ja'))
+ self.assertEqual(True, opt_bool_german_from_str('Ja'))
+ self.assertEqual(False, bool_german_from_str('Nein'))
+ self.assertEqual(False, opt_bool_german_from_str('Nein'))
+ self.assertEqual(None, opt_bool_german_from_str(''))
+ with self.assertRaises(ValueError):
+ bool_german_from_str('Vielleicht')
+ opt_bool_german_from_str('Vielleicht')
+ bool_german_from_str('')
+
+ def test_to_str(self):
+ self.assertEqual('Ja', bool_german_to_str(True))
+ self.assertEqual('Ja', opt_bool_german_to_str(True))
+ self.assertEqual('Nein', bool_german_to_str(False))
+ self.assertEqual('Nein', opt_bool_german_to_str(False))
+ self.assertEqual('', opt_bool_german_to_str(None))
+
# tristate converter
# ------------------
class TestUrl(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(url_from_str('http://www.winterrodeln.org/wiki/Arzler_Alm/'), 'http://www.winterrodeln.org/wiki/Arzler_Alm/')
- self.assertEqual(url_from_str('http://www.winterrodeln.org/wiki/Nösslachhütte/'), 'http://www.winterrodeln.org/wiki/Nösslachhütte/')
- self.assertEqual(url_from_str('https://www.winterrodeln.org/wiki/Nösslachhütte/'), 'https://www.winterrodeln.org/wiki/Nösslachhütte/')
+ self.assertEqual('http://www.winterrodeln.org/wiki/Arzler_Alm/', url_from_str('http://www.winterrodeln.org/wiki/Arzler_Alm/'))
+ self.assertEqual('http://www.winterrodeln.org/wiki/Nösslachhütte/', url_from_str('http://www.winterrodeln.org/wiki/Nösslachhütte/'))
+ self.assertEqual('https://www.winterrodeln.org/wiki/Nösslachhütte/', url_from_str('https://www.winterrodeln.org/wiki/Nösslachhütte/'))
with self.assertRaises(ValueError):
url_from_str('mailto:office@example.com')
with self.assertRaises(ValueError):
url_from_str('/wiki/Arzler_Alm/')
def test_to_str(self):
- self.assertEqual(url_to_str('http://www.winterrodeln.org/wiki/Arzler_Alm/'), 'http://www.winterrodeln.org/wiki/Arzler_Alm/')
- self.assertEqual(url_to_str('http://www.winterrodeln.org/wiki/Nösslachhütte/'), 'http://www.winterrodeln.org/wiki/Nösslachhütte/')
- self.assertEqual(url_to_str('https://www.winterrodeln.org/wiki/Nösslachhütte/'), 'https://www.winterrodeln.org/wiki/Nösslachhütte/')
+ self.assertEqual('http://www.winterrodeln.org/wiki/Arzler_Alm/', url_to_str('http://www.winterrodeln.org/wiki/Arzler_Alm/'))
+ self.assertEqual('http://www.winterrodeln.org/wiki/Nösslachhütte/', url_to_str('http://www.winterrodeln.org/wiki/Nösslachhütte/'))
+ self.assertEqual('https://www.winterrodeln.org/wiki/Nösslachhütte/', url_to_str('https://www.winterrodeln.org/wiki/Nösslachhütte/'))
# webauskunft converter
class TestWebauskunft(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(webauskunft_from_str('http://www.example.com/current'), (True, 'http://www.example.com/current'))
- self.assertEqual(webauskunft_from_str(''), (None, None))
- self.assertEqual(webauskunft_from_str('Nein'), (False, None))
+ self.assertEqual((True, 'http://www.example.com/current'), webauskunft_from_str('http://www.example.com/current'))
+ self.assertEqual((None, None), webauskunft_from_str(''))
+ self.assertEqual((False, None), webauskunft_from_str('Nein'))
def test_to_str(self):
- self.assertEqual(webauskunft_to_str((True, 'http://www.example.com/current')), 'http://www.example.com/current')
- self.assertEqual(webauskunft_to_str((None, None)), '')
- self.assertEqual(webauskunft_to_str((False, None)), 'Nein')
+ self.assertEqual('http://www.example.com/current', webauskunft_to_str((True, 'http://www.example.com/current')))
+ self.assertEqual('', webauskunft_to_str((None, None)))
+ self.assertEqual('Nein', webauskunft_to_str((False, None)))
# wikipage converter
self.assertEqual(None, emails_from_str(''))
self.assertEqual([], emails_from_str('Nein'))
self.assertEqual([(('info@example.com', False), None)], emails_from_str('info@example.com'))
- # self.assertEqual([(('info@example.com', True), None)], emails_from_str('info(at)example.com'))
+ self.assertEqual([(('info@example.com', True), None)], emails_from_str('info(at)example.com'))
self.assertEqual([(('info@example.com', False), 'Office')], emails_from_str('info@example.com (Office)'))
self.assertEqual([(('info@example.com', False), None), (('home@example.com', False), 'Privat')], emails_from_str('info@example.com; home@example.com (Privat)'))
with self.assertRaises(ValueError):
class TestPhoneNumber(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(phone_number_from_str('+43-699-123456789'), '+43-699-123456789')
- self.assertEqual(phone_number_from_str('+43-69945'), '+43-69945')
- self.assertEqual(phone_number_from_str('+43-512-507-6418'), '+43-512-507-6418')
+ self.assertEqual('+43-699-123456789', phone_number_from_str('+43-699-123456789'))
+ self.assertEqual('+43-69945', phone_number_from_str('+43-69945'))
+ self.assertEqual('+43-512-507-6418', phone_number_from_str('+43-512-507-6418'))
with self.assertRaises(ValueError):
phone_number_from_str('+43-')
with self.assertRaises(ValueError):
phone_number_from_str('0512123456789')
def test_to_str(self):
- self.assertEqual(phone_number_to_str('+43-699-123456789'), '+43-699-123456789')
- self.assertEqual(phone_number_to_str('+43-69945'), '+43-69945')
- self.assertEqual(phone_number_to_str('+43-512-507-6418'), '+43-512-507-6418')
+ self.assertEqual('+43-699-123456789', phone_number_to_str('+43-699-123456789'))
+ self.assertEqual('+43-69945', phone_number_to_str('+43-69945'))
+ self.assertEqual('+43-512-507-6418', phone_number_to_str('+43-512-507-6418'))
class TestOptPhoneCommentEnum(unittest.TestCase):
def test_from_str(self):
self.assertEqual(opt_phone_comment_enum_from_str(''), None)
- self.assertEqual(opt_phone_comment_enum_from_str('Nein'), [])
- self.assertEqual(opt_phone_comment_enum_from_str('+43-512-123456 (untertags)'), [('+43-512-123456', 'untertags')])
- self.assertEqual(opt_phone_comment_enum_from_str('+43-512-1234 (untertags); +43-664-123456 (Alm)'), [('+43-512-1234', 'untertags'), ('+43-664-123456', 'Alm')])
+ self.assertEqual([], opt_phone_comment_enum_from_str('Nein'))
+ self.assertEqual([('+43-512-123456', 'untertags')], opt_phone_comment_enum_from_str('+43-512-123456 (untertags)'))
+ self.assertEqual([('+43-512-1234', 'untertags'), ('+43-664-123456', 'Alm')], opt_phone_comment_enum_from_str('+43-512-1234 (untertags); +43-664-123456 (Alm)'))
+ self.assertEqual([('+43-512-1234', None), ('+43-664-123456', 'Sommer')], opt_phone_comment_enum_from_str('+43-512-1234; +43-664-123456 (Sommer)', True))
with self.assertRaises(ValueError):
opt_phone_comment_enum_from_str('+43-512-123456+ (untertags)')
with self.assertRaises(ValueError):
opt_phone_comment_enum_from_str('+43-512-123456')
def test_to_str(self):
- self.assertEqual(opt_phone_comment_enum_to_str(None), '')
- self.assertEqual(opt_phone_comment_enum_to_str([]), 'Nein')
- self.assertEqual(opt_phone_comment_enum_to_str([('+43-512-123456', 'untertags')]), '+43-512-123456 (untertags)')
- self.assertEqual(opt_phone_comment_enum_to_str([('+43-512-1234', 'untertags'), ('+43-664-123456', 'Alm')]), '+43-512-1234 (untertags); +43-664-123456 (Alm)')
+ self.assertEqual('', opt_phone_comment_enum_to_str(None))
+ self.assertEqual('Nein', opt_phone_comment_enum_to_str([]))
+ self.assertEqual('+43-512-123456 (untertags)', opt_phone_comment_enum_to_str([('+43-512-123456', 'untertags')]))
+ self.assertEqual('+43-512-1234 (untertags); +43-664-123456 (Alm)', opt_phone_comment_enum_to_str([('+43-512-1234', 'untertags'), ('+43-664-123456', 'Alm')]))
+ self.assertEqual('+43-512-1234; +43-664-123456 (Sommer)', opt_phone_comment_enum_to_str([('+43-512-1234', None), ('+43-664-123456', 'Sommer')], True))
# longitude/latitude converter
class TestSingleCachet(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(single_cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'), ('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel'))
- self.assertEqual(single_cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer'), ('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer'))
+ self.assertEqual(('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel'), single_cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'))
+ self.assertEqual(('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer'), single_cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer'))
with self.assertRaises(ValueError):
single_cachet_german_from_str('')
with self.assertRaises(ValueError):
single_cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2013 schwerer')
def test_to_str(self):
- self.assertEqual(single_cachet_german_to_str(('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')), 'Tiroler Naturrodelbahn-Gütesiegel 2009 mittel')
- self.assertEqual(single_cachet_german_to_str(('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer')), 'Tiroler Naturrodelbahn-Gütesiegel 2013 schwer')
+ self.assertEqual('Tiroler Naturrodelbahn-Gütesiegel 2009 mittel', single_cachet_german_to_str(('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')))
+ self.assertEqual('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer', single_cachet_german_to_str(('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer')))
class TestCachetGerman(unittest.TestCase):
def test_from_str(self):
self.assertEqual(cachet_german_from_str(''), None)
- self.assertEqual(cachet_german_from_str('Nein'), [])
- self.assertEqual(cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'), [('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')])
- self.assertEqual(cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer; Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'),
- [('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer'), ('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')])
+ self.assertEqual([], cachet_german_from_str('Nein'))
+ self.assertEqual([('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')], cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'))
+ self.assertEqual([('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer'), ('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')],
+ cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer; Tiroler Naturrodelbahn-Gütesiegel 2009 mittel'))
with self.assertRaises(ValueError):
cachet_german_from_str('Ja')
with self.assertRaises(ValueError):
cachet_german_from_str('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer Tiroler Naturrodelbahn-Gütesiegel 2009 mittel')
def test_to_str(self):
- self.assertEqual(cachet_german_to_str(None), '')
- self.assertEqual(cachet_german_to_str([]), 'Nein')
- self.assertEqual(cachet_german_to_str([('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')]), 'Tiroler Naturrodelbahn-Gütesiegel 2009 mittel')
- self.assertEqual(cachet_german_to_str([('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer'), ('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')]),
- 'Tiroler Naturrodelbahn-Gütesiegel 2013 schwer; Tiroler Naturrodelbahn-Gütesiegel 2009 mittel')
+ self.assertEqual('', cachet_german_to_str(None))
+ self.assertEqual('Nein', cachet_german_to_str([]))
+ self.assertEqual('Tiroler Naturrodelbahn-Gütesiegel 2009 mittel', cachet_german_to_str([('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')]))
+ self.assertEqual('Tiroler Naturrodelbahn-Gütesiegel 2013 schwer; Tiroler Naturrodelbahn-Gütesiegel 2009 mittel', cachet_german_to_str([('Tiroler Naturrodelbahn-Gütesiegel', '2013', 'schwer'), ('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')]))
# night light days converter
class TestOptStrOptCommentEnum(unittest.TestCase):
def test_from_str(self):
- self.assertEqual(opt_str_opt_comment_enum_from_str(''), None)
- self.assertEqual(opt_str_opt_comment_enum_from_str('Nein'), [])
- self.assertEqual(opt_str_opt_comment_enum_from_str('Talstation'), [('Talstation', None)])
- self.assertEqual(opt_str_opt_comment_enum_from_str('Talstation (unten)'), [('Talstation', 'unten')])
- self.assertEqual(opt_str_opt_comment_enum_from_str('Talstation (unten); Mittelstation'), [('Talstation', 'unten'), ('Mittelstation', None)])
+ self.assertEqual(None, opt_str_opt_comment_enum_from_str(''))
+ self.assertEqual([], opt_str_opt_comment_enum_from_str('Nein'))
+ self.assertEqual([('Talstation', None)], opt_str_opt_comment_enum_from_str('Talstation'))
+ self.assertEqual([('Talstation', 'unten')], opt_str_opt_comment_enum_from_str('Talstation (unten)'))
+ self.assertEqual([('Talstation', 'unten'), ('Mittelstation', None)], opt_str_opt_comment_enum_from_str('Talstation (unten); Mittelstation'))
with self.assertRaises(ValueError):
opt_str_opt_comment_enum_from_str('(unten)')
with self.assertRaises(ValueError):
opt_str_opt_comment_enum_from_str('Talstation (unten); ; Mittelstation')
def test_to_str(self):
- self.assertEqual(opt_str_opt_comment_enum_to_str(None), '')
- self.assertEqual(opt_str_opt_comment_enum_to_str([]), 'Nein')
- self.assertEqual(opt_str_opt_comment_enum_to_str([('Talstation', None)]), 'Talstation')
- self.assertEqual(opt_str_opt_comment_enum_to_str([('Talstation', 'unten')]), 'Talstation (unten)')
- self.assertEqual(opt_str_opt_comment_enum_to_str([('Talstation', 'unten'), ('Mittelstation', None)]), 'Talstation (unten); Mittelstation')
+ self.assertEqual('', opt_str_opt_comment_enum_to_str(None))
+ self.assertEqual('Nein', opt_str_opt_comment_enum_to_str([]))
+ self.assertEqual('Talstation', opt_str_opt_comment_enum_to_str([('Talstation', None)]))
+ self.assertEqual('Talstation (unten)', opt_str_opt_comment_enum_to_str([('Talstation', 'unten')]))
+ self.assertEqual('Talstation (unten); Mittelstation', opt_str_opt_comment_enum_to_str([('Talstation', 'unten'), ('Mittelstation', None)]))
# wikibox converter
value = '{{MyTemplate|apple=2|banana=5}}'
converter_dict = OrderedDict([('apple', opt_uint_converter), ('banana', opt_uint_converter)])
result = wikibox_from_str(value, 'MyTemplate', converter_dict)
- self.assertEqual(result['apple'], 2)
- self.assertEqual(result['banana'], 5)
+ self.assertEqual(2, result['apple'])
+ self.assertEqual(5, result['banana'])
value = '{{MyTemplate\n | apple = 2 \n| banana = 5 }}'
result = wikibox_from_str(value, 'MyTemplate', converter_dict)
- self.assertEqual(result['apple'], 2)
- self.assertEqual(result['banana'], 5)
+ self.assertEqual(2, result['apple'])
+ self.assertEqual(5, result['banana'])
with self.assertRaises(ValueError):
wikibox_from_str(value, 'myTemplate', converter_dict)
value = OrderedDict([('apple', 2), ('banana', 5)])
converter_dict = OrderedDict([('apple', opt_uint_converter), ('banana', opt_uint_converter)])
result = wikibox_to_str(value, 'MyTemplate', converter_dict)
- self.assertEqual(result, '{{MyTemplate|apple=2|banana=5}}')
+ self.assertEqual('{{MyTemplate|apple=2|banana=5}}', result)
# Rodelbahnbox converter
def test_from_str(self):
value = rodelbahnbox_from_str(self.value)
- self.assertEqual(value['Position'], LonLat(12.806522, 46.807218))
- self.assertEqual(value['Position oben'], LonLat(12.818658, 46.799014))
- self.assertEqual(value['Höhe oben'], 1046)
- self.assertEqual(value['Position unten'], LonLat(None, None))
- self.assertEqual(value['Höhe unten'], None)
- self.assertEqual(value['Länge'], 3500)
- self.assertEqual(value['Schwierigkeit'], 2)
- self.assertEqual(value['Lawinen'], 1)
- self.assertEqual(value['Betreiber'], 'Bringungsgemeinschaft Kreithof-Dolomitenhütte')
- self.assertEqual(value['Öffentliche Anreise'], 4)
- self.assertEqual(value['Aufstieg möglich'], True)
- self.assertEqual(value['Aufstieg getrennt'], (0.5, None))
- self.assertEqual(value['Gehzeit'], 75)
- self.assertEqual(value['Aufstiegshilfe'], [('Taxi', None), ('Sonstige', 'PKW bis Kreithof')])
- self.assertEqual(value['Beleuchtungsanlage'], (1.0, None))
- self.assertEqual(value['Beleuchtungstage'], (7, None))
- self.assertEqual(value['Rodelverleih'], [])
- self.assertEqual(value['Gütesiegel'], [('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')])
- self.assertEqual(value['Webauskunft'], (True, 'http://www.lienzerdolomiten.info/at/tobogorpt.html'))
- self.assertEqual(value['Telefonauskunft'], [('+43-664-2253782', 'Dolomitenhütte')])
- self.assertEqual(value['Bild'], 'Dolomitenrodelbahn Tristach 2011-12-22 oberer Bereich.jpg')
- self.assertEqual(value['In Übersichtskarte'], True)
- self.assertEqual(value['Forumid'], 139)
+ self.assertEqual(LonLat(12.806522, 46.807218), value['Position'])
+ self.assertEqual(LonLat(12.818658, 46.799014), value['Position oben'])
+ self.assertEqual(1046, value['Höhe oben'])
+ self.assertEqual(LonLat(None, None), value['Position unten'])
+ self.assertEqual(None, value['Höhe unten'])
+ self.assertEqual(3500, value['Länge'])
+ self.assertEqual(2, value['Schwierigkeit'])
+ self.assertEqual(1, value['Lawinen'])
+ self.assertEqual('Bringungsgemeinschaft Kreithof-Dolomitenhütte', value['Betreiber'])
+ self.assertEqual(4, value['Öffentliche Anreise'])
+ self.assertEqual(True, value['Aufstieg möglich'])
+ self.assertEqual((0.5, None), value['Aufstieg getrennt'])
+ self.assertEqual(75, value['Gehzeit'])
+ self.assertEqual([('Taxi', None), ('Sonstige', 'PKW bis Kreithof')], value['Aufstiegshilfe'])
+ self.assertEqual((1.0, None), value['Beleuchtungsanlage'])
+ self.assertEqual((7, None), value['Beleuchtungstage'])
+ self.assertEqual([], value['Rodelverleih'])
+ self.assertEqual([('Tiroler Naturrodelbahn-Gütesiegel', '2009', 'mittel')], value['Gütesiegel'])
+ self.assertEqual((True, 'http://www.lienzerdolomiten.info/at/tobogorpt.html'), value['Webauskunft'])
+ self.assertEqual([('+43-664-2253782', 'Dolomitenhütte')], value['Telefonauskunft'])
+ self.assertEqual('Dolomitenrodelbahn Tristach 2011-12-22 oberer Bereich.jpg', value['Bild'])
+ self.assertEqual(True, value['In Übersichtskarte'])
+ self.assertEqual(139, value['Forumid'])
def test_to_str(self):
value = OrderedDict([
('Bild', 'Dolomitenrodelbahn Tristach 2011-12-22 oberer Bereich.jpg'),
('In Übersichtskarte', True),
('Forumid', 139)])
- self.assertEqual(rodelbahnbox_to_str(value), self.value)
+ self.assertEqual(self.value, rodelbahnbox_to_str(value))
-# TODO: Gasthausbox converter
+# Gasthausbox converter
# ---------------------
class TestGasthausbox(unittest.TestCase):
- def test_GasthausboxDictValidator(self):
- v = wrpylib.wrvalidators.GasthausboxDictValidator()
- other = collections.OrderedDict([
- ('Position', '47.295549 N 9.986970 E'),
- ('Höhe', '1250'),
- ('Betreiber', ''),
- ('Sitzplätze', ''),
- ('Übernachtung', ''),
- ('Rauchfrei', 'Nein'),
- ('Rodelverleih', ''),
- ('Handyempfang', 'A1; T-Mobile/Telering'),
- ('Homepage', 'http://www.bergkristallhuette.com/'),
- ('E-Mail', 'bergkristallhuette@gmx.at'),
- ('Telefon', '+43-664-1808482'),
- ('Bild', 'Bergkritsallhütte 2009-02-07.JPG'),
- ('Rodelbahnen', '[[Bergkristallhütte]]')])
- python = v.to_python(other, None)
- other2 = v.from_python(python, None)
- assert other == other2
+ def setUp(self):
+ self.maxDiff = None
+ self.value = \
+"""{{Gasthausbox
+| Position = 47.123456 N 11.123456 E
+| Höhe = 1808
+| Betreiber = Max Mustermann
+| Sitzplätze = 50
+| Übernachtung = 20 Matrazenlager, 3 Doppelzimmer
+| Rauchfrei = Ja
+| Rodelverleih = 2 Euro (Ausweis erforderlich)
+| Handyempfang = A1; T-Mobile A
+| Homepage = http://www.birgitzeralm.at/
+| E-Mail = Nein
+| Telefon = +43-664-5487520; +43-512-123456 (wenn geschlossen)
+| Bild = Gasthaus_Birgitzer_Alm_03.jpg
+| Rodelbahnen = [[Birgitzer Alm (vom Adelshof)]]; [[Birgitzer Alm (von Birgitz)]]
+}}"""
+
+ def test_from_str(self):
+ value = gasthausbox_from_str(self.value)
+ self.assertEqual(LonLat(11.123456, 47.123456), value['Position'])
+ self.assertEqual(1808, value['Höhe'])
+ self.assertEqual('Max Mustermann', value['Betreiber'])
+ self.assertEqual(50, value['Sitzplätze'])
+ self.assertEqual((True, '20 Matrazenlager, 3 Doppelzimmer'), value['Übernachtung'])
+ self.assertEqual((True, '2 Euro (Ausweis erforderlich)'), value['Rodelverleih'])
+ self.assertEqual(1.0, value['Rauchfrei'])
+ self.assertEqual([('A1', None), ('T-Mobile A', None)], value['Handyempfang'])
+ self.assertEqual((True, 'http://www.birgitzeralm.at/'), value['Homepage'])
+ self.assertEqual([], value['E-Mail'])
+ self.assertEqual([('+43-664-5487520', None), ('+43-512-123456', 'wenn geschlossen')], value['Telefon'])
+ self.assertEqual('Gasthaus_Birgitzer_Alm_03.jpg', value['Bild'])
+ self.assertEqual(['[[Birgitzer Alm (vom Adelshof)]]', '[[Birgitzer Alm (von Birgitz)]]'], value['Rodelbahnen'])
+
+ def test_to_str(self):
+ value = OrderedDict([
+ ('Position', LonLat(11.123456, 47.123456)),
+ ('Höhe', 1808),
+ ('Betreiber', 'Max Mustermann'),
+ ('Sitzplätze', 50),
+ ('Übernachtung', (True, '20 Matrazenlager, 3 Doppelzimmer')),
+ ('Rodelverleih', (True, '2 Euro (Ausweis erforderlich)')),
+ ('Rauchfrei', 1.0),
+ ('Handyempfang', [('A1', None), ('T-Mobile A', None)]),
+ ('Homepage', (True, 'http://www.birgitzeralm.at/')),
+ ('E-Mail', []),
+ ('Telefon', [('+43-664-5487520', None), ('+43-512-123456', 'wenn geschlossen')]),
+ ('Bild', 'Gasthaus_Birgitzer_Alm_03.jpg'),
+ ('Rodelbahnen', ['[[Birgitzer Alm (vom Adelshof)]]', '[[Birgitzer Alm (von Birgitz)]]'])])
+ self.assertEqual(self.value, gasthausbox_to_str(value))