def test_pop_a_predicate_match_not_found(): actual = {"a": 0, "x": 2} expected_error_message = 'MatchNotFoundError(No get_match occurred on path: $[has($.a == 1)].a)' expected = {"a": 0, "x": 2} with pytest.raises(MatchNotFoundError) as exc_info: pop(path[has(path.a == 1)].a, actual) assert actual == expected assert repr(exc_info.value) == expected_error_message
def test_pop_0(): actual = [1, 2] expected_return = 1 expected = [2] actual_return = pop(path[0], actual) assert actual == expected assert actual_return == expected_return
def test_pop_a_predicate_default(): actual = {"a": 0, "x": 2} expected_return = 0 expected = {"a": 0, "x": 2} actual_return = pop(path[has(path.a == 1)].a, actual, default=0) assert actual == expected assert actual_return == expected_return
def test_pop_a_b_c(): actual = {"a": {"b": {"c": 1}}} expected_return = 1 expected = {"a": {"b": {}}} actual_return = pop(path.a.b.c, actual) assert actual == expected assert actual_return == expected_return
def test_pop_a(): actual = {"a": 1, "x": 2} expected_return = 1 expected = {"x": 2} actual_return = pop(path.a, actual) assert actual == expected assert actual_return == expected_return
def test_pop_0_predicate_default(): actual = [1, 2] expected_return = 0 expected = [1, 2] actual_return = pop(path[has(path.a == 1)].a, actual, default=0) assert actual == expected assert actual_return == expected_return
def test_pop_0_predicate(): actual = [1, 2] expected_return = 1 expected = [2] actual_return = pop(path[has(path[0] == 1)][0], actual) assert actual == expected assert actual_return == expected_return
def test_pop_0_1_2(): actual = [[[1]]] expected_return = 1 expected = [[[]]] actual_return = pop(path[0][0][0], actual) assert actual == expected assert actual_return == expected_return
def test_pop_wc_invalid_path(): expected = "PopError(The path $[*] does not support pop. It can only be a key or index\n path: $[*])" data = [0, 1] with pytest.raises(PopError) as exc_info: pop(path[wc], data) assert repr(exc_info.value) == expected