From 78c20ca2ce9503b370363882edef6b6e1cd5eb52 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo <fabio.caccamo@gmail.com> Date: Thu, 6 Feb 2020 15:15:10 +0100 Subject: [PATCH] Added type_util tests. --- benedict/utils/type_util.py | 24 +-- tests/utils/test_type_util.py | 275 +++++++++++++++++++++++++++++----- 2 files changed, 253 insertions(+), 46 deletions(-) diff --git a/benedict/utils/type_util.py b/benedict/utils/type_util.py index 5cfe681..db8a600 100644 --- a/benedict/utils/type_util.py +++ b/benedict/utils/type_util.py @@ -37,8 +37,8 @@ def is_float(val): return isinstance(val, float) -# def is_function(val): -# return callable(val) +def is_function(val): + return callable(val) def is_integer(val): @@ -46,8 +46,8 @@ def is_integer(val): def is_json_serializable(val): - json_types = (bool, dict, float, ) + integer_types + \ - (list, tuple, set, ) + string_types + json_types = (type(None), bool, dict, float, list, tuple, set, ) + \ + integer_types + string_types return isinstance(val, json_types) @@ -59,21 +59,21 @@ def is_list_or_tuple(val): return isinstance(val, (list, tuple, )) -# def is_none(val): -# return val is None +def is_none(val): + return val is None -# def is_not_none(val): -# return val is not None +def is_not_none(val): + return val is not None -# def is_set(val): -# return isinstance(val, set) +def is_set(val): + return isinstance(val, set) def is_string(val): return isinstance(val, string_types) -# def is_tuple(val): -# return isinstance(val, tuple) +def is_tuple(val): + return isinstance(val, tuple) diff --git a/tests/utils/test_type_util.py b/tests/utils/test_type_util.py index f4c774a..1e8f00a 100644 --- a/tests/utils/test_type_util.py +++ b/tests/utils/test_type_util.py @@ -2,6 +2,9 @@ from benedict.utils import type_util +from datetime import datetime +from decimal import Decimal + import unittest @@ -12,69 +15,273 @@ class type_util_test_case(unittest.TestCase): pass def test_is_bool(self): - # TODO - pass + f = type_util.is_bool + self.assertFalse(f(None)) + self.assertTrue(f(True)) + self.assertTrue(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_collection(self): - # TODO - pass + f = type_util.is_collection + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertTrue(f((0, 1, 2, ))) + self.assertTrue(f([0, 1, 2])) + self.assertTrue(f(set([0, 1, 2]))) + self.assertTrue(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_datetime(self): - # TODO - pass + f = type_util.is_datetime + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertTrue(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_decimal(self): - # TODO - pass + f = type_util.is_decimal + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertTrue(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_dict(self): - # TODO - pass + f = type_util.is_dict + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertTrue(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_dict_or_list(self): - # TODO - pass + f = type_util.is_dict_or_list + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertTrue(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertTrue(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_float(self): - # TODO - pass + f = type_util.is_float + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertTrue(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_function(self): - # TODO - pass + f = type_util.is_function + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertTrue(f(lambda a: a)) def test_is_integer(self): - # TODO - pass + f = type_util.is_integer + self.assertFalse(f(None)) + self.assertTrue(f(True)) + self.assertTrue(f(False)) + self.assertTrue(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_json_serializable(self): - # TODO - pass + f = type_util.is_json_serializable + self.assertTrue(f(None)) + self.assertTrue(f(True)) + self.assertTrue(f(False)) + self.assertTrue(f(int(0))) + self.assertTrue(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertTrue(f((0, 1, 2, ))) + self.assertTrue(f([0, 1, 2])) + self.assertTrue(f(set([0, 1, 2]))) + self.assertTrue(f({'a':0, 'b':1, 'c':2})) + self.assertTrue(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_list(self): - # TODO - pass + f = type_util.is_list + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertTrue(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_list_or_tuple(self): - # TODO - pass + f = type_util.is_list_or_tuple + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertTrue(f((0, 1, 2, ))) + self.assertTrue(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_none(self): - # TODO - pass + f = type_util.is_none + self.assertTrue(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_not_none(self): - # TODO - pass + f = type_util.is_not_none + self.assertFalse(f(None)) + self.assertTrue(f(True)) + self.assertTrue(f(False)) + self.assertTrue(f(int(0))) + self.assertTrue(f(float(0.5))) + self.assertTrue(f(Decimal(0.5))) + self.assertTrue(f(datetime.now())) + self.assertTrue(f((0, 1, 2, ))) + self.assertTrue(f([0, 1, 2])) + self.assertTrue(f(set([0, 1, 2]))) + self.assertTrue(f({'a':0, 'b':1, 'c':2})) + self.assertTrue(f('hello world')) + self.assertTrue(f(lambda a: a)) def test_is_set(self): - # TODO - pass + f = type_util.is_set + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertTrue(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_string(self): - # TODO - pass + f = type_util.is_string + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertFalse(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertTrue(f('hello world')) + self.assertFalse(f(lambda a: a)) def test_is_tuple(self): - # TODO - pass + f = type_util.is_tuple + self.assertFalse(f(None)) + self.assertFalse(f(True)) + self.assertFalse(f(False)) + self.assertFalse(f(int(0))) + self.assertFalse(f(float(0.5))) + self.assertFalse(f(Decimal(0.5))) + self.assertFalse(f(datetime.now())) + self.assertTrue(f((0, 1, 2, ))) + self.assertFalse(f([0, 1, 2])) + self.assertFalse(f(set([0, 1, 2]))) + self.assertFalse(f({'a':0, 'b':1, 'c':2})) + self.assertFalse(f('hello world')) + self.assertFalse(f(lambda a: a))