def test_multi_line_header(self): code = 'def func(\n ):\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n def __call__(self):\n return 1\n', replacer.get_new_class('_New'))
def test_empty_method(self): code = 'def func():\n pass\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n def __call__(self):\n pass\n', replacer.get_new_class('_New'))
def test_changing_the_module_and_class_methods(self): code = dedent("""\ class C(object): def a_func(self): return 1 def another_func(self): pass """) self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index("func")) self.project.do(replacer.get_changes("_New")) expected = dedent("""\ class C(object): def a_func(self): return _New(self)() def another_func(self): pass class _New(object): def __init__(self, host): self.self = host def __call__(self): return 1 """) self.assertEqual(expected, self.mod.read())
def test_multi_line_header(self): code = 'def func(\n ):\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n def __call__(self):\n return 1\n', replacer.get_new_class('_New'))
def test_empty_method(self): code = 'def func():\n pass\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n def __call__(self):\n pass\n', replacer.get_new_class('_New'))
def test_trivial_return(self): code = 'def func():\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n def __call__(self):' '\n return 1\n', replacer.get_new_class('_New'))
def test_self_parameter(self): code = 'def func(self):\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n' ' def __init__(self, host):\n self.self = host\n\n' ' def __call__(self):\n return 1\n', replacer.get_new_class('_New'))
def test_simple_using_passed_parameters(self): code = 'def func(param):\n return param\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n' ' def __init__(self, param):\n self.param = param\n\n' ' def __call__(self):\n return self.param\n', replacer.get_new_class('_New'))
def test_self_parameter(self): code = 'def func(self):\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n' ' def __init__(self, host):\n self.self = host\n\n' ' def __call__(self):\n return 1\n', replacer.get_new_class('_New'))
def test_simple_using_passed_parameters(self): code = 'def func(param):\n return param\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.assertEquals( 'class _New(object):\n\n' ' def __init__(self, param):\n self.param = param\n\n' ' def __call__(self):\n return self.param\n', replacer.get_new_class('_New'))
def test_changing_the_module(self): code = 'def func():\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.project.do(replacer.get_changes('_New')) expected = 'def func():\n' \ ' return _New()()\n\n\n' \ 'class _New(object):\n\n' \ ' def __call__(self):\n' \ ' return 1\n' self.assertEquals(expected, self.mod.read())
def test_changing_the_module(self): code = 'def func():\n return 1\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.project.do(replacer.get_changes('_New')) expected = 'def func():\n' \ ' return _New()()\n\n\n' \ 'class _New(object):\n\n' \ ' def __call__(self):\n' \ ' return 1\n' self.assertEquals(expected, self.mod.read())
def test_self_keywords_and_args_parameters(self): code = 'def func(arg, *args, **kwds):\n' \ ' result = arg + args[0] + kwds[arg]\n' \ ' return result\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) expected = 'class _New(object):\n\n' \ ' def __init__(self, arg, args, kwds):\n' \ ' self.arg = arg\n' \ ' self.args = args\n' \ ' self.kwds = kwds\n\n' \ ' def __call__(self):\n' \ ' result = self.arg + self.args[0] + self.kwds[self.arg]\n' \ ' return result\n' self.assertEquals(expected, replacer.get_new_class('_New'))
def test_self_keywords_and_args_parameters(self): code = 'def func(arg, *args, **kwds):\n' \ ' result = arg + args[0] + kwds[arg]\n' \ ' return result\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) expected = 'class _New(object):\n\n' \ ' def __init__(self, arg, args, kwds):\n' \ ' self.arg = arg\n' \ ' self.args = args\n' \ ' self.kwds = kwds\n\n' \ ' def __call__(self):\n' \ ' result = self.arg + self.args[0] + self.kwds[self.arg]\n' \ ' return result\n' self.assertEquals(expected, replacer.get_new_class('_New'))
def test_performing_on_not_a_function(self): code = dedent("""\ my_var = 10 """) self.mod.write(code) with self.assertRaises(RefactoringError): MethodObject(self.project, self.mod, code.index("my_var"))
def test_trivial_return(self): code = dedent("""\ def func(): return 1 """) self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index("func")) expected = dedent("""\ class _New(object): def __call__(self): return 1 """) self.assertEqual( expected, replacer.get_new_class("_New"), )
def test_changing_the_module(self): code = dedent("""\ def func(): return 1 """) self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index("func")) self.project.do(replacer.get_changes("_New")) expected = dedent("""\ def func(): return _New()() class _New(object): def __call__(self): return 1 """) self.assertEqual(expected, self.mod.read())
def test_a_single_parameter(self): code = dedent("""\ def func(param): return 1 """) self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index("func")) expected = dedent("""\ class _New(object): def __init__(self, param): self.param = param def __call__(self): return 1 """) self.assertEqual( expected, replacer.get_new_class("_New"), )
def test_changing_the_module_and_class_methods(self): code = 'class C(object):\n\n' \ ' def a_func(self):\n' \ ' return 1\n\n' \ ' def another_func(self):\n' \ ' pass\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.project.do(replacer.get_changes('_New')) expected = 'class C(object):\n\n' \ ' def a_func(self):\n' \ ' return _New(self)()\n\n' \ ' def another_func(self):\n' \ ' pass\n\n\n' \ 'class _New(object):\n\n' \ ' def __init__(self, host):\n' \ ' self.self = host\n\n' \ ' def __call__(self):\n' \ ' return 1\n' self.assertEquals(expected, self.mod.read())
def test_changing_the_module_and_class_methods(self): code = 'class C(object):\n\n' \ ' def a_func(self):\n' \ ' return 1\n\n' \ ' def another_func(self):\n' \ ' pass\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('func')) self.project.do(replacer.get_changes('_New')) expected = 'class C(object):\n\n' \ ' def a_func(self):\n' \ ' return _New(self)()\n\n' \ ' def another_func(self):\n' \ ' pass\n\n\n' \ 'class _New(object):\n\n' \ ' def __init__(self, host):\n' \ ' self.self = host\n\n' \ ' def __call__(self):\n' \ ' return 1\n' self.assertEquals(expected, self.mod.read())
def test_self_keywords_and_args_parameters(self): code = dedent("""\ def func(arg, *args, **kwds): result = arg + args[0] + kwds[arg] return result """) self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index("func")) expected = dedent("""\ class _New(object): def __init__(self, arg, args, kwds): self.arg = arg self.args = args self.kwds = kwds def __call__(self): result = self.arg + self.args[0] + self.kwds[self.arg] return result """) self.assertEqual(expected, replacer.get_new_class("_New"))
def test_performing_on_not_a_function(self): code = 'my_var = 10\n' self.mod.write(code) with self.assertRaises(RefactoringError): MethodObject(self.project, self.mod, code.index('my_var'))
def test_performing_on_not_a_function(self): code = 'my_var = 10\n' self.mod.write(code) replacer = MethodObject(self.project, self.mod, code.index('my_var'))