Exemplo n.º 1
0
def test_retrieve_propagates_exception():
    dol = {"a": [1, 2], "b": failing_leave, "e": 2}
    with pytest.raises(Exception):
        val = retrieve(dol, "b/c/d", default=0)

    dol = {"a": [1, 2], "b": custom_leave, "e": 2}
    with pytest.raises(CustomException):
        val = retrieve(dol, "b/c/d", default=0)
Exemplo n.º 2
0
def test_retrieve_fail():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}

    with pytest.raises(Exception):
        val = retrieve(dol, "f")

    with pytest.raises(Exception):
        val = retrieve(dol, "a/4")

    with pytest.raises(Exception):
        val = retrieve(dol, "b/c/e")
Exemplo n.º 3
0
def test_retrieve_fail_ef_callable():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}

    with pytest.raises(Exception):
        val = retrieve(dol, "f", expand=False)

    with pytest.raises(Exception):
        val = retrieve(dol, "a/4", expand=False)

    with pytest.raises(Exception):
        val = retrieve(dol, "b/c/e", expand=False)
Exemplo n.º 4
0
def test_retrieve_fail_ef():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}

    with pytest.raises(Exception):
        val = retrieve(dol, "f", expand=False)

    with pytest.raises(Exception):
        val = retrieve(dol, "a/4", expand=False)

    with pytest.raises(Exception):
        val = retrieve(dol, "b/c/e", expand=False)
Exemplo n.º 5
0
def test_retrieve_default_ef_callable():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}
    ref = "abc"

    val = retrieve(dol, "f", default="abc", expand=False)
    assert val == ref

    val = retrieve(dol, "a/4", default="abc", expand=False)
    assert val == ref

    val = retrieve(dol, "b/c/e", default="abc", expand=False)
    assert val == ref
Exemplo n.º 6
0
def test_retrieve_default_ef():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}
    ref = "abc"

    val = retrieve(dol, "f", default="abc", expand=False)
    assert val == ref

    val = retrieve(dol, "a/4", default="abc", expand=False)
    assert val == ref

    val = retrieve(dol, "b/c/e", default="abc", expand=False)
    assert val == ref
Exemplo n.º 7
0
def test_retrieve_ef_callable():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}

    val = retrieve(dol, "a", expand=False)
    ref = [1, 2]
    assert val == ref

    val = retrieve(dol, "a/0", expand=False)
    ref = 1
    assert val == ref

    with pytest.raises(Exception):
        val = retrieve(dol, "b/c/d", expand=False)
Exemplo n.º 8
0
def test_retrieve_ef():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}

    val = retrieve(dol, "a", expand=False)
    ref = [1, 2]
    assert val == ref

    val = retrieve(dol, "a/0", expand=False)
    ref = 1
    assert val == ref

    val = retrieve(dol, "b/c/d", expand=False)
    ref = 1
    assert val == ref
Exemplo n.º 9
0
def test_retrieve():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}

    val = retrieve(dol, "a")
    ref = [1, 2]
    assert val == ref

    val = retrieve(dol, "a/0")
    ref = 1
    assert val == ref

    val = retrieve(dol, "b/c/d")
    ref = 1
    assert val == ref
Exemplo n.º 10
0
def test_retrieve_callable():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}

    val = retrieve(dol, "a")
    ref = [1, 2]
    assert val == ref

    val = retrieve(dol, "a/0")
    ref = 1
    assert val == ref

    val = retrieve(dol, "b/c/d")
    ref = 1
    assert val == ref

    # test in-place modification
    ref_dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}
    assert dol == ref_dol
Exemplo n.º 11
0
def test_retrieve_callable_leaves():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}
    val = retrieve(dol, "b")

    # make sure expansion is returned
    assert val == callable_leave()

    # make sure expansion was done in-place
    assert dol["b"] == callable_leave()

    dol = {"a": [1, 2], "b": callable_leave, "e": 2}
    val = retrieve(dol, "b/c")
    # make sure expansion is returned
    assert val == nested_leave()
    # make sure expansion was done in-place
    assert dol["b"]["c"] == nested_leave()

    dol = {"a": [1, 2], "b": callable_leave, "e": 2}
    val = retrieve(dol, "b/c/d")
    assert val == 1
Exemplo n.º 12
0
def test_retrieve_pass_success_fail_ef_callable():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}

    with pytest.raises(Exception):
        retrieve(dol, "f", pass_success=True, expand=False)
    with pytest.raises(Exception):
        retrieve(dol, "a/4", pass_success=True, expand=False)
    with pytest.raises(Exception):
        retrieve(dol, "b/c/e", pass_success=True, expand=False)

    ref = [1, 2], True
    val = retrieve(dol, "a", pass_success=True, expand=False)
    assert val == ref

    ref = 1, True
    val = retrieve(dol, "a/0", pass_success=True, expand=False)
    assert val == ref

    with pytest.raises(Exception):
        val = retrieve(dol, "b/c/d", pass_success=True, expand=False)
Exemplo n.º 13
0
def test_retrieve_pass_success_fail():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}

    with pytest.raises(Exception):
        retrieve(dol, "f", pass_success=True)
    with pytest.raises(Exception):
        retrieve(dol, "a/4", pass_success=True)
    with pytest.raises(Exception):
        retrieve(dol, "b/c/e", pass_success=True)

    ref = [1, 2], True
    val = retrieve(dol, "a", pass_success=True)
    assert val == ref

    ref = 1, True
    val = retrieve(dol, "a/0", pass_success=True)
    assert val == ref

    ref = 1, True
    val = retrieve(dol, "b/c/d", pass_success=True)
    assert val == ref
Exemplo n.º 14
0
def test_retrieve_pass_success_ef_callable():
    dol = {"a": [1, 2], "b": callable_leave, "e": 2}
    ref = "abc", False

    val = retrieve(dol, "f", default="abc", pass_success=True, expand=False)
    assert val == ref

    val = retrieve(dol, "a/4", default="abc", pass_success=True, expand=False)
    assert val == ref

    val = retrieve(dol, "b/c/e", default="abc", pass_success=True, expand=False)
    assert val == ref

    ref = [1, 2], True
    val = retrieve(dol, "a", default="abc", pass_success=True, expand=False)
    assert val == ref

    ref = 1, True
    val = retrieve(dol, "a/0", default="abc", pass_success=True, expand=False)
    assert val == ref

    ref = "abc", False
    val = retrieve(dol, "b/c/d", default="abc", pass_success=True, expand=False)
    assert val == ref
Exemplo n.º 15
0
def test_retrieve_pass_success():
    dol = {"a": [1, 2], "b": {"c": {"d": 1}}, "e": 2}
    ref = "abc", False

    val = retrieve(dol, "f", default="abc", pass_success=True)
    assert val == ref

    val = retrieve(dol, "a/4", default="abc", pass_success=True)
    assert val == ref

    val = retrieve(dol, "b/c/e", default="abc", pass_success=True)
    assert val == ref

    ref = [1, 2], True
    val = retrieve(dol, "a", default="abc", pass_success=True)
    assert val == ref

    ref = 1, True
    val = retrieve(dol, "a/0", default="abc", pass_success=True)
    assert val == ref

    ref = 1, True
    val = retrieve(dol, "b/c/d", default="abc", pass_success=True)
    assert val == ref