blob: 9932908b693e7115419f3b0b2121d1db684742bb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import unittest
import jmespath
from jmespath import functions
class CustomFunctions(functions.Functions):
@functions.signature({'types': ['string', 'array', 'object', 'null']})
def _func_length0(self, s):
return 0 if s is None else len(s)
class TestCustomFunctions(unittest.TestCase):
def setUp(self):
self.options = jmespath.Options(custom_functions=CustomFunctions())
def test_null_to_nonetype(self):
data = {
'a': {
'b': [1, 2, 3]
}
}
self.assertEqual(jmespath.search('length0(a.b)', data, self.options), 3)
self.assertEqual(jmespath.search('length0(a.c)', data, self.options), 0)
|