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())
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())
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())
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())
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())
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())
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())
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)
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)
def normalize_arguments(self, path, offset): changers = [ArgumentNormalizer()] ref = ChangeSignature( self.root_project, self.get_resource(path), offset) return ref.get_changes(changers)
def normalize_arguments(self, path, offset): changers = [ArgumentNormalizer()] ref = ChangeSignature(self.root_project, self.get_resource(path), offset) return ref.get_changes(changers)
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)
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)