コード例 #1
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_invalid5():
    with pytest.raises(
            Py2VegaSyntaxError,
            match=
            'A `If` node body must contain at least one `if` statement or one `return` statement'
    ):
        py2vega(invalid_func5)
コード例 #2
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_whitelist():
    with pytest.raises(NameError):
        py2vega('my_variable')
    assert py2vega('my_variable', ['my_variable']) == 'my_variable'

    # Vega constants are accessible by default
    assert py2vega('PI') == 'PI'
コード例 #3
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_subscript():
    code = 'value[0]'
    assert py2vega(code, whitelist) == 'value[0]'

    code = '[34, 32][0 if value < 2 else 1]'
    assert py2vega(code, whitelist) == '[34, 32][((value < 2) ? 0 : 1)]'

    code = 'value[:2]'
    assert py2vega(code, whitelist) == 'slice(value, 0, 2)'

    code = 'value[1:]'
    assert py2vega(code, whitelist) == 'slice(value, 1)'

    code = 'value[:]'
    assert py2vega(code, whitelist) == 'slice(value, 0)'

    code = 'value[1:2]'
    assert py2vega(code, whitelist) == 'slice(value, 1, 2)'

    # Unsupported step parameter
    code = 'value[::2]'
    with pytest.raises(Py2VegaSyntaxError):
        py2vega(code, whitelist)

    # Unsupported ExtSlice node
    code = 'value[::2, 1:]'
    with pytest.raises(Py2VegaSyntaxError):
        py2vega(code, whitelist)
コード例 #4
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_invalid4():
    with pytest.raises(
            Py2VegaSyntaxError,
            match=
            'A `If` node body cannot contain an `if` or `return` statement if it is not the last element of the body'
    ):
        py2vega(invalid_func4)
コード例 #5
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_unary():
    code = 'not value'
    assert py2vega(code, whitelist) == '!(value)'

    code = '-value'
    assert py2vega(code, whitelist) == '-value'

    code = '+value'
    assert py2vega(code, whitelist) == '+value'
コード例 #6
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_nameconstant():
    code = 'False'
    assert py2vega(code, whitelist) == 'false'

    code = 'True'
    assert py2vega(code, whitelist) == 'true'

    code = 'None'
    assert py2vega(code, whitelist) == 'null'
コード例 #7
0
ファイル: test_py2vega.py プロジェクト: codeaudit/py2vega
def test_binary():
    code = 'value or 3'
    assert py2vega(code, whitelist) == 'value || 3'

    code = 'value and 3'
    assert py2vega(code, whitelist) == 'value && 3'

    code = 'value + 3'
    assert py2vega(code, whitelist) == 'value + 3'

    code = 'value**3'
    assert py2vega(code, whitelist) == 'pow(value, 3)'
コード例 #8
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_compare():
    code = '3 < value <= 4'
    assert py2vega(code, whitelist) == '(3 < value <= 4)'

    code = 'value in (\'ford\', \'chevrolet\')'
    assert py2vega(
        code, whitelist) == '(indexof([\'ford\', \'chevrolet\'], value) != -1)'

    code = '\'chevrolet\' in value'
    assert py2vega(code, whitelist) == '(indexof(value, \'chevrolet\') != -1)'

    code = '\'chevrolet\' not in value'
    assert py2vega(code, whitelist) == '(indexof(value, \'chevrolet\') == -1)'
コード例 #9
0
 def _validate_value(self, proposal):
     return py2vega(
         proposal["value"],
         [
             Variable("cell", ["value", "row", "column", "metadata"]),
             "default_value",
         ],
     )
コード例 #10
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_binary():
    code = 'value or 3'
    assert py2vega(code, whitelist) == '(value || 3)'

    code = 'value and 3'
    assert py2vega(code, whitelist) == '(value && 3)'

    code = 'value + 3'
    assert py2vega(code, whitelist) == '(value + 3)'

    code = 'value**3'
    assert py2vega(code, whitelist) == '(pow(value, 3))'

    # Unsupported operator
    code = 'value & x'
    with pytest.raises(Py2VegaSyntaxError):
        py2vega(code, whitelist)
コード例 #11
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign8():
    assert py2vega(assign_func8, whitelist) == "if((value < 3), 3, 8)"
コード例 #12
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign7():
    with pytest.raises(NameError):
        py2vega(assign_func7, whitelist)
コード例 #13
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign6():
    assert py2vega(assign_func6, whitelist) == "'Hello'"
コード例 #14
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_math():
    assert py2vega(math_func) == 'isNaN(3)'
コード例 #15
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign10():
    with pytest.raises(Py2VegaSyntaxError, match='Unsupported target'):
        assert py2vega(assign_func10, whitelist)
コード例 #16
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign2():
    assert py2vega(assign_func2,
                   whitelist) == "((value < 3) ? 'green' : 'red')"
コード例 #17
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign1():
    assert py2vega(
        assign_func1, whitelist
    ) == "((indexof(['USA', 'Japan'], value) != -1) ? 'red' : 'green')"
コード例 #18
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_if_stmt():
    assert py2vega(
        conditional_func, whitelist
    ) == "if((value < 3), 'red', if((value < 5), 'green', 'yellow'))"
コード例 #19
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_lambda():
    with pytest.raises(RuntimeError):
        py2vega(lambda value: value)
コード例 #20
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_tuple():
    code = '(True, 3, \'hello\')'
    assert py2vega(code, whitelist) == '[true, 3, \'hello\']'

    code = '((True, 3, \'hello\'), 3)'
    assert py2vega(code, whitelist) == '[[true, 3, \'hello\'], 3]'
コード例 #21
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_invalid6():
    with pytest.raises(Py2VegaSyntaxError):
        py2vega(invalid_func6)
コード例 #22
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign9():
    assert py2vega(assign_func9,
                   whitelist) == "if((value < 3), (isNaN(value) ? 38 : 32), 8)"
コード例 #23
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_dict():
    code = '{\'hello\': 3, \'there\': 4}'
    assert py2vega(code, whitelist) == '{\'hello\': 3, \'there\': 4}'

    code = '{\'hello\': 3, \'there\': 4}'
    assert py2vega(code, whitelist) == '{\'hello\': 3, \'there\': 4}'
コード例 #24
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign4():
    assert py2vega(assign_func4, whitelist) == "'green'"
コード例 #25
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_function():
    assert py2vega(func, whitelist) == '((value < 150) ? \'red\' : \'green\')'
コード例 #26
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign5():
    assert py2vega(assign_func5, whitelist) == "['Hello', 'Hello']"
コード例 #27
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_ternary():
    code = '3 if value else 4'
    assert py2vega(code, whitelist) == '(value ? 3 : 4)'
コード例 #28
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_list():
    code = '[True, 3, \'hello\']'
    assert py2vega(code, whitelist) == '[true, 3, \'hello\']'
コード例 #29
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_assign3():
    assert py2vega(assign_func3, whitelist) == "'red'"
コード例 #30
0
ファイル: test_py2vega.py プロジェクト: martinRenou/py2vega
def test_str():
    code = '\'white\''
    assert py2vega(code, whitelist) == '\'white\''