Implemented test for bool_germen_from/to_german.
[philipp/winterrodeln/wrpylib.git] / tests / test_wrvalidators.py
index a132df939690b37a9815b9c178cd2399cebc9cd9..ff56cfe237c10e28de1c060bf5242232465713b0 100644 (file)
@@ -5,9 +5,23 @@ import wrpylib.wrvalidators
 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
 # --------------
 
@@ -38,12 +52,36 @@ class TestOptNoGerman(unittest.TestCase):
         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']
+
+    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)
 
-# TODO: dict converter
-# --------------
+
+# 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
@@ -211,9 +249,28 @@ class TestOptUInt(unittest.TestCase):
         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
 # ------------------
@@ -702,7 +759,7 @@ class TestRodelbahnbox(unittest.TestCase):
         self.assertEqual(self.value, rodelbahnbox_to_str(value))
 
 
-# TODO: Gasthausbox converter
+# Gasthausbox converter
 # ---------------------
 
 class TestGasthausbox(unittest.TestCase):