aboutsummaryrefslogtreecommitdiff
path: root/tests/test_types.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_types.py')
-rw-r--r--tests/test_types.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/test_types.py b/tests/test_types.py
index 7aff73f..cc2ff3b 100644
--- a/tests/test_types.py
+++ b/tests/test_types.py
@@ -1,3 +1,4 @@
+import datetime
import decimal
import unittest
@@ -11,6 +12,16 @@ class testTypes(unittest.TestCase):
def tearDown(self):
pass
+ def test_base(self):
+ checker = types.LesanaType()
+
+ # The base class does not implement empty nor load
+ with self.assertRaises(NotImplementedError):
+ checker.empty()
+
+ with self.assertRaises(NotImplementedError):
+ checker.load("")
+
def test_string(self):
checker = types.LesanaString()
@@ -98,6 +109,49 @@ class testTypes(unittest.TestCase):
v = checker.load(None)
self.assertEqual(v, None)
+ def test_timestamp(self):
+ checker = types.LesanaTimestamp()
+
+ v = checker.empty()
+ self.assertEqual(v, None)
+
+ now = datetime.datetime.now()
+ v = checker.load(now)
+ self.assertEqual(v, now)
+
+ today = datetime.date.today()
+ v = checker.load(today)
+ self.assertEqual(v, today)
+
+ v = checker.load("2020-01-01")
+ self.assertEqual(v, datetime.datetime(2020, 1, 1))
+
+ v = checker.load("2020-01-01 10:00")
+ self.assertEqual(v, datetime.datetime(2020, 1, 1, 10, 0))
+
+ for d in ("today", "2020-13-01"):
+ with self.assertRaises(types.LesanaValueError):
+ checker.load(d)
+
+ v = checker.load(None)
+ self.assertEqual(v, None)
+
+ def test_boolean(self):
+ checker = types.LesanaBoolean()
+
+ v = checker.empty()
+ self.assertEqual(v, None)
+
+ v = checker.load(True)
+ self.assertEqual(v, True)
+
+ for d in ("maybe", "yes", "no"):
+ with self.assertRaises(types.LesanaValueError):
+ checker.load(d)
+
+ v = checker.load(None)
+ self.assertEqual(v, None)
+
if __name__ == '__main__':
unittest.main()