Exemplo n.º 1
0
def test_side_effects_I():
    count = 0

    def counter(lines):
        nonlocal count
        count += 1
        return lines

    counter.has_side_effects = True

    manager = ipt2.TransformerManager()
    manager.cleanup_transforms.insert(0, counter)
    assert manager.check_complete("a=1\n") == ('complete', None)
    assert count == 0
Exemplo n.º 2
0
def test_check_complete_invalidates_sunken_brackets():
    """
    Test that a single line with more closing brackets than the opening ones is
    interpreted as invalid
    """
    cc = ipt2.TransformerManager().check_complete
    nt.assert_equal(cc(")"), ("invalid", None))
    nt.assert_equal(cc("]"), ("invalid", None))
    nt.assert_equal(cc("}"), ("invalid", None))
    nt.assert_equal(cc(")("), ("invalid", None))
    nt.assert_equal(cc("]["), ("invalid", None))
    nt.assert_equal(cc("}{"), ("invalid", None))
    nt.assert_equal(cc("]()("), ("invalid", None))
    nt.assert_equal(cc("())("), ("invalid", None))
    nt.assert_equal(cc(")[]("), ("invalid", None))
    nt.assert_equal(cc("()]("), ("invalid", None))
def test_check_complete():
    cc = ipt2.TransformerManager().check_complete
    nt.assert_equal(cc("a = 1"), ('complete', None))
    nt.assert_equal(cc("for a in range(5):"), ('incomplete', 4))
    nt.assert_equal(cc("raise = 2"), ('invalid', None))
    nt.assert_equal(cc("a = [1,\n2,"), ('incomplete', 0))
    nt.assert_equal(cc(")"), ('incomplete', 0))
    nt.assert_equal(cc("\\\r\n"), ('incomplete', 0))
    nt.assert_equal(cc("a = '''\n   hi"), ('incomplete', 3))
    nt.assert_equal(cc("def a():\n x=1\n global x"), ('invalid', None))
    nt.assert_equal(cc("a \\ "), ('invalid', None))  # Nothing allowed after backslash

    # no need to loop on all the letters/numbers.
    short = '12abAB' + string.printable[62:]
    for c in short:
        # test does not raise:
        cc(c)
        for k in short:
            cc(c + k)
Exemplo n.º 4
0
def test_check_complete():
    cc = ipt2.TransformerManager().check_complete

    example = dedent("""
        if True:
            a=1""")

    assert cc(example) == ("incomplete", 4)
    assert cc(example + "\n") == ("complete", None)
    assert cc(example + "\n    ") == ("complete", None)

    # no need to loop on all the letters/numbers.
    short = '12abAB' + string.printable[62:]
    for c in short:
        # test does not raise:
        cc(c)
        for k in short:
            cc(c + k)

    assert cc("def f():\n  x=0\n  \\\n  ") == ("incomplete", 2)
Exemplo n.º 5
0
def test_check_complete():
    cc = ipt2.TransformerManager().check_complete

    example = dedent("""
        if True:
            a=1""")

    nt.assert_equal(cc(example), ('incomplete', 4))
    nt.assert_equal(cc(example + '\n'), ('complete', None))
    nt.assert_equal(cc(example + '\n    '), ('complete', None))

    # no need to loop on all the letters/numbers.
    short = '12abAB' + string.printable[62:]
    for c in short:
        # test does not raise:
        cc(c)
        for k in short:
            cc(c + k)

    nt.assert_equal(cc("def f():\n  x=0\n  \\\n  "), ('incomplete', 2))
def test_null_cleanup_transformer():
    manager = ipt2.TransformerManager()
    manager.cleanup_transforms.insert(0, null_cleanup_transformer)
    nt.assert_is(manager.transform_cell(""), "")
def test_null_cleanup_transformer():
    manager = ipt2.TransformerManager()
    manager.cleanup_transforms.insert(0, null_cleanup_transformer)
    assert manager.transform_cell("") == ""
Exemplo n.º 8
0
import itertools
import sys

import doctest
import operator
import re

try:
    if sys.version_info > (3, 5):
        import IPython.core.inputtransformer2 as ipt

        transform_manager = ipt.TransformerManager()
        transform_manager.cleanup_transforms.clear()
        transform_cell = transform_manager.transform_cell
        RUN_MAGIC_RE = re.compile(r"get_ipython\(\)\.run_line_magic\('(?:time(?:it)?)', (?P<x>(['\"]))(.*)(?P=x)\)",
                                  re.MULTILINE)
    else:
        from IPython.core import inputsplitter as ipt

        transformer = ipt.IPythonInputSplitter()
        transform_cell = transformer.transform_cell
        RUN_MAGIC_RE = re.compile(r"get_ipython\(\)\.magic\(u(?P<x>(['\"]))(?:time(?:it)?) (.*)(?P=x)\)",
                                  re.MULTILINE)
except ImportError:
    ipt = transform_cell = None

LINENO, SOURCE, RAW = range(3)

ROLE_RE = re.compile(r':flake8-(?P<role>\S*):\s?(?P<value>.*)$', re.MULTILINE)

INDENT_RE = re.compile(r'(?P<indent>^ *).', re.MULTILINE)
Exemplo n.º 9
0
def test_check_complete_param(code, expected, number):
    cc = ipt2.TransformerManager().check_complete
    assert cc(code) == (expected, number)