Browse Source

Added unit tests for the Integer Datahandler

Roland Haroutiounian 8 years ago
parent
commit
0a6c5c96bd
2 changed files with 31 additions and 1 deletions
  1. 5
    1
      lodel/leapi/datahandlers/datas_base.py
  2. 26
    0
      tests/datahandlers/test_integer.py

+ 5
- 1
lodel/leapi/datahandlers/datas_base.py View File

@@ -37,7 +37,11 @@ class Integer(DataField):
37 37
     def _check_data_value(self, value):
38 38
         error = None
39 39
         try:
40
-            value = int(value)
40
+            value = float(value)
41
+            if value % 1 == 0:
42
+                value = int(value)
43
+            else:
44
+                raise TypeError()
41 45
         except(ValueError, TypeError):
42 46
             error = TypeError("The value '%s' is not, and will never, be an integer" % value)
43 47
         return value, error

+ 26
- 0
tests/datahandlers/test_integer.py View File

@@ -0,0 +1,26 @@
1
+import unittest
2
+
3
+from lodel.leapi.datahandlers.datas import Integer, Boolean
4
+
5
+
6
+class IntegerTestCase(unittest.TestCase):
7
+
8
+    def test_integer_check_data_value(self):
9
+        test_int = Integer()
10
+
11
+        # Incorrect values
12
+        for test_bad_value in ['ok','ceci est un test', '15.2', 15.2]:
13
+            _, error = test_int._check_data_value(test_bad_value)
14
+            self.assertIsNotNone(error)
15
+            print(test_bad_value)
16
+
17
+        # Correct values
18
+        for test_correct_value in [10, '15', '15.0']:
19
+            _, error = test_int._check_data_value(test_correct_value)
20
+            self.assertIsNone(error)
21
+            print(test_correct_value)
22
+
23
+    def test_can_override(self):
24
+        test_int = Integer()
25
+        test_boolean = Boolean()
26
+        self.assertFalse(test_int.can_override(test_boolean))

Loading…
Cancel
Save