def test_call_encodes_lists_with_values_doing_calls(): assert str(Call(args=[[Call(args=["second", 123], parent="")]], parent="")) == r"""([("second", 123)])"""
def test_call_encodes_dicts_with_escapes_keys(): assert str(Call(args=[{ "key\\1": "item1" }], parent="")) == r"""({"key\\1": "item1"})"""
def test_call_encodes_dicts_with_values_doing_calls(): assert (str( Call(args=[{ "key": Call(args=["second", 123], parent="") }], parent="")) == r"""({"key": ("second", 123)})""")
def test_call_encodes_dicts(): assert str(Call(args=[{ "key1": "item1", "key2": "item2" }], parent="")) == """({"key1": "item1", "key2": "item2"})"""
def test_call_encodes_ordereddict(): assert (str( Call(args=[OrderedDict({ "key1": "item1", "key2": "item2" })], parent="")) == """({"key1": "item1", "key2": "item2"})""")
def test_call_encodes_lists(): assert str(Call(args=[["item1", "item2"]], parent="")) == """(["item1", "item2"])"""
def test_call_encodes_strings_with_quotes_includes_escapes(): assert str(Call(args=['he"llo'], parent="")) == """("he\\"llo")"""
def test_require_function_is_available(node_server): node_server("{} = {}".format(Identifier("readline"), Call(args=["readline"], parent="require"))) assert node_server("return readline") is not None
def test_value_error_if_encoding_is_broken(): with raises(ValueError): str(Call(args=[object()], parent=""))
def test_call_encodes_none_to_null(): assert str(Call(args=[None], parent="")) == r"""(null)"""