コード例 #1
0
def test_check_fail_3():
    # Missing required attribute (arg requirement-ness defaults to True)
    f = check(REQUIRE, data=['red', 'nir'])(func_sig)
    with pytest.raises(PipelineConfigurationError) as exc:
        f({}, {'record': []}, {})
    assert 'KeyError' in str(exc)
    assert 'not passed to function' in str(exc)
コード例 #2
0
def test_check_curry_1():
    # Ensure the decorator works when curried
    _func_sig = check(REQUIRE, data=[str, str])(func_sig)
    fc = toolz.curry(_func_sig,
                     **{REQUIRE: {'data': ['nir', 'red']},
                        OUTPUT: {'data': ['ndvi']}})
    fc({})
コード例 #3
0
def test_check_fail_4():
    # Wrong number of arguments
    f = check(REQUIRE, data=[str, str])(func_sig)
    with pytest.raises(PipelineConfigurationError) as exc:
        f({}, {'data': ['asdf', 'red', 'nir']}, {})
    assert 'ValueError' in str(exc)
    assert 'Specification requires' in str(exc)
コード例 #4
0
def test_check_fail_5():
    # Argument not in function signature
    f = check('asdf', data=[])(func_sig)
    with pytest.raises(PipelineConfigurationError) as exc:
        f({}, {'data': ['asdf']}, {})
    assert "Argument specified, 'asdf', does not" in str(exc)
コード例 #5
0
def test_check_fail_2():
    # Invalid 'require' argument
    f = check(REQUIRE, data=(True, ['red', 'nir']))(func_sig)
    with pytest.raises(PipelineConfigurationError) as exc:
        f({}, 'not a dict', {})
    assert 'should be a dictionary' in str(exc)
コード例 #6
0
def test_check_fail_1():
    # Invalid requirement signature
    with pytest.raises(PipelineConfigurationError) as exc:
        check(REQUIRE, data='asdf')(func_sig)
    assert 'invalid signature' in str(exc).lower()
コード例 #7
0
def test_check_pass_3():
    # Two checks -- a require and output
    f = check(REQUIRE,
              data=(True, [str, str]),
              record=(True, [str]))(func_sig)
    f({}, {'data': ['red', 'nir'], 'record': ['ccdc']}, {})
コード例 #8
0
def test_check_pass_2():
    # Partially specified -- assume 'data' isn't required
    f = check(REQUIRE, data=(False, [str, str]))(func_sig)
    f({}, {'data': ['red', 'nir']}, {})
コード例 #9
0
def test_check_pass_1():
    # Fully specified
    f = check(REQUIRE, data=(True, [str, str]))(func_sig)
    f({}, {'data': ['red', 'nir']}, {})