示例#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_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)
示例#3
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({})
示例#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']}, {})