diff options
| -rw-r--r-- | jq.pyx | 3 | ||||
| -rw-r--r-- | tests/jq_tests.py | 8 |
2 files changed, 10 insertions, 1 deletions
@@ -67,6 +67,9 @@ def _string_to_strings(char* program, char* input): # TODO: error if !compiled cdef int compiled = jq_compile(jq, program) + if not compiled: + raise ValueError("program was not valid") + cdef jv_parser parser jv_parser_init(&parser) # TODO: is len a suitable replacement for strlen (unicode)? diff --git a/tests/jq_tests.py b/tests/jq_tests.py index 6e9066b..edc6cb4 100644 --- a/tests/jq_tests.py +++ b/tests/jq_tests.py @@ -1,4 +1,4 @@ -from nose.tools import istest, assert_equal +from nose.tools import istest, assert_equal, assert_raises from jq import jq @@ -57,3 +57,9 @@ def output_elements_are_separated_by_newlines_when_there_are_multiple_inputs(): "2\n3\n4", str(jq(".+1").transform_string("1\n2\n3")) ) + + +@istest +def value_error_is_raised_if_program_is_invalid(): + # TODO: should raise in just jq() + assert_raises(ValueError, lambda: jq("!").transform_string("[1, 2, 3]")) |
