예제 #1
0
 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'))
예제 #2
0
 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'))
예제 #3
0
    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())
예제 #4
0
 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'))
예제 #5
0
 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'))
예제 #6
0
 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'))
예제 #7
0
 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'))
예제 #8
0
 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'))
예제 #9
0
 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'))
예제 #10
0
 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'))
예제 #11
0
 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())
예제 #12
0
 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())
예제 #13
0
 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'))
예제 #14
0
 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'))
예제 #15
0
 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"))
예제 #16
0
    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"),
        )
예제 #17
0
    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())
예제 #18
0
    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"),
        )
예제 #19
0
 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())
예제 #20
0
 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())
예제 #21
0
    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"))
예제 #22
0
 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'))
예제 #23
0
 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'))