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
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)
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)
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("") == ""
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)
def test_check_complete_param(code, expected, number): cc = ipt2.TransformerManager().check_complete assert cc(code) == (expected, number)