Exemplo n.º 1
0
 def test_redordering_arguments_reported_by_mft(self):
     self.mod.write('def f(a, b, c):\n    pass\nf(1, 2, 3)\n')
     signature = ChangeSignature(self.project, self.mod,
                                 self.mod.read().rindex('f'))
     signature.get_changes(
         [change_signature.ArgumentReorderer([1, 2, 0])]).do()
     self.assertEquals('def f(b, c, a):\n    pass\nf(2, 3, 1)\n',
                       self.mod.read())
Exemplo n.º 2
0
 def test_resources_parameter(self):
     mod1 = testutils.create_module(self.project, 'mod1')
     mod1.write('def a_func(param):\n    pass\n')
     self.mod.write('import mod1\nmod1.a_func(1)\n')
     signature = ChangeSignature(self.project, mod1,
                                 mod1.read().index('a_func') + 1)
     signature.get_changes([change_signature.ArgumentRemover(0)],
                           resources=[mod1]).do()
     self.assertEquals('import mod1\nmod1.a_func(1)\n', self.mod.read())
     self.assertEquals('def a_func():\n    pass\n', mod1.read())
Exemplo n.º 3
0
 def test_doing_multiple_changes(self):
     changers = []
     self.mod.write('def a_func(p1):\n    pass\na_func(1)\n')
     changers.append(change_signature.ArgumentRemover(0))
     changers.append(change_signature.ArgumentAdder(0, 'p2', None, None))
     signature = ChangeSignature(self.project, self.mod,
                                 self.mod.read().index('a_func') + 1)
     signature.get_changes(changers).do()
     self.assertEquals('def a_func(p2):\n    pass\na_func()\n',
                       self.mod.read())
Exemplo n.º 4
0
 def test_changing_signature_for_constructors2(self):
     self.mod.write(
         'class C(object):\n    def __init__(self, p):\n        pass\n'
         'c = C(1)\n')
     signature = ChangeSignature(self.project, self.mod,
                                 self.mod.read().index('__init__') + 1)
     signature.get_changes([change_signature.ArgumentRemover(1)]).do()
     self.assertEquals(
         'class C(object):\n    def __init__(self):\n        pass\n'
         'c = C()\n',
         self.mod.read())
Exemplo n.º 5
0
 def test_doing_multiple_changes2(self):
     changers = []
     self.mod.write('def a_func(p1, p2):\n    pass\na_func(p2=2)\n')
     changers.append(change_signature.ArgumentAdder(2, 'p3', None, '3'))
     changers.append(change_signature.ArgumentReorderer([1, 0, 2]))
     changers.append(change_signature.ArgumentRemover(1))
     signature = ChangeSignature(self.project, self.mod,
                                 self.mod.read().index('a_func') + 1)
     signature.get_changes(changers).do()
     self.assertEquals('def a_func(p2, p3):\n    pass\na_func(2, 3)\n',
                       self.mod.read())
Exemplo n.º 6
0
 def test_changing_signature_in_subclasses(self):
     self.mod.write(
         'class A(object):\n    def a_method(self):\n        pass\n'
         'class B(A):\n    def a_method(self):\n        pass\n')
     signature = ChangeSignature(self.project, self.mod,
                                 self.mod.read().index('a_method') + 1)
     signature.get_changes([change_signature.ArgumentAdder(1, 'p1')],
                              in_hierarchy=True).do()
     self.assertEquals(
         'class A(object):\n    def a_method(self, p1):\n        pass\n'
         'class B(A):\n    def a_method(self, p1):\n        pass\n',
         self.mod.read())
Exemplo n.º 7
0
 def test_reordering_and_automatic_defaults(self):
     code = 'def f(p1, p2=2):\n' \
            '    pass\n' \
            'f(1, 2)\n'
     self.mod.write(code)
     signature = ChangeSignature(self.project, self.mod,
                                 code.index('f('))
     reorder = change_signature.ArgumentReorderer([1, 0], autodef='1')
     signature.get_changes([reorder]).do()
     expected = 'def f(p2=2, p1=1):\n' \
                '    pass\n' \
                'f(2, 1)\n'
     self.assertEquals(expected, self.mod.read())
Exemplo n.º 8
0
 def add_argument(self, path, offset, index, name, default, value):
     changers = [ArgumentAdder(index, name, default, value)]
     ref = ChangeSignature(
         self.root_project,
         self.get_resource(path),
         offset)
     return ref.get_changes(changers)
Exemplo n.º 9
0
 def remove_argument(self, path, offset, index):
     changers = [ArgumentRemover(index)]
     ref = ChangeSignature(
         self.root_project,
         self.get_resource(path),
         offset)
     return ref.get_changes(changers)
Exemplo n.º 10
0
 def normalize_arguments(self, path, offset):
     changers = [ArgumentNormalizer()]
     ref = ChangeSignature(
         self.root_project,
         self.get_resource(path),
         offset)
     return ref.get_changes(changers)
Exemplo n.º 11
0
 def normalize_arguments(self, path, offset):
     changers = [ArgumentNormalizer()]
     ref = ChangeSignature(self.root_project, self.get_resource(path),
                           offset)
     return ref.get_changes(changers)
Exemplo n.º 12
0
 def add_argument(self, path, offset, index, name, default, value):
     changers = [ArgumentAdder(index, name, default, value)]
     ref = ChangeSignature(self.root_project, self.get_resource(path),
                           offset)
     return ref.get_changes(changers)
Exemplo n.º 13
0
 def remove_argument(self, path, offset, index):
     changers = [ArgumentRemover(index)]
     ref = ChangeSignature(self.root_project, self.get_resource(path),
                           offset)
     return ref.get_changes(changers)