Expand Dumas JSON utility nodes
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
import unittest
|
||||
|
||||
from dumas_json_nodes import DumasJSONStringToObjectNode
|
||||
from dumas_json_nodes import (
|
||||
DumasJSONArrayLengthNode,
|
||||
DumasJSONGetValueNode,
|
||||
DumasJSONKeysNode,
|
||||
DumasJSONMergeObjectsNode,
|
||||
DumasJSONObjectToStringNode,
|
||||
DumasJSONStringToObjectNode,
|
||||
DumasJSONSetValueNode,
|
||||
)
|
||||
|
||||
|
||||
class DumasJSONStringToObjectNodeTests(unittest.TestCase):
|
||||
class DumasJSONNodeTests(unittest.TestCase):
|
||||
def test_parses_valid_json(self):
|
||||
node = DumasJSONStringToObjectNode()
|
||||
|
||||
@@ -18,6 +25,54 @@ class DumasJSONStringToObjectNodeTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(result, (None,))
|
||||
|
||||
def test_object_to_string_can_pretty_print(self):
|
||||
node = DumasJSONObjectToStringNode()
|
||||
|
||||
result = node.convert_object_to_string({"b": 1, "a": 2}, True, True)
|
||||
|
||||
self.assertEqual(result, ('{\n "a": 2,\n "b": 1\n}',))
|
||||
|
||||
def test_get_value_reads_nested_paths(self):
|
||||
node = DumasJSONGetValueNode()
|
||||
|
||||
result = node.get_value({"items": [{"id": "a1"}]}, "items.0.id")
|
||||
|
||||
self.assertEqual(result, ("a1",))
|
||||
|
||||
def test_set_value_writes_nested_paths(self):
|
||||
node = DumasJSONSetValueNode()
|
||||
|
||||
result = node.set_value({"user": {"name": "Chris"}}, "user.name", '"Dumas"')
|
||||
|
||||
self.assertEqual(result, ({"user": {"name": "Dumas"}},))
|
||||
|
||||
def test_merge_objects_deep_merges_dictionaries(self):
|
||||
node = DumasJSONMergeObjectsNode()
|
||||
|
||||
result = node.merge_objects(
|
||||
{"user": {"name": "Chris", "flags": {"admin": False}}},
|
||||
{"user": {"flags": {"admin": True}, "role": "owner"}},
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
result,
|
||||
({"user": {"name": "Chris", "flags": {"admin": True}, "role": "owner"}},),
|
||||
)
|
||||
|
||||
def test_keys_returns_key_list_and_count(self):
|
||||
node = DumasJSONKeysNode()
|
||||
|
||||
result = node.list_keys({"name": "Dumas", "kind": "nodes"})
|
||||
|
||||
self.assertEqual(result, (["name", "kind"], 2))
|
||||
|
||||
def test_array_length_returns_length(self):
|
||||
node = DumasJSONArrayLengthNode()
|
||||
|
||||
result = node.get_length([1, 2, 3, 4])
|
||||
|
||||
self.assertEqual(result, (4,))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user