示例#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'))