From d6126a8ebbf9967f18e6c28c7c67aba2bdaca766 Mon Sep 17 00:00:00 2001 From: climbus Date: Sun, 28 Feb 2021 17:19:07 +0100 Subject: [PATCH] create_generate with goal_resource param --- rope/contrib/generate.py | 4 ++-- ropetest/contrib/generatetest.py | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/rope/contrib/generate.py b/rope/contrib/generate.py index 9291a1d16..3b9826304 100644 --- a/rope/contrib/generate.py +++ b/rope/contrib/generate.py @@ -5,7 +5,7 @@ from rope.refactor import sourceutils, importutils, functionutils, suites -def create_generate(kind, project, resource, offset): +def create_generate(kind, project, resource, offset, goal_resource=None): """A factory for creating `Generate` objects `kind` can be 'variable', 'function', 'class', 'module' or @@ -13,7 +13,7 @@ def create_generate(kind, project, resource, offset): """ generate = eval('Generate' + kind.title()) - return generate(project, resource, offset) + return generate(project, resource, offset, goal_resource=goal_resource) def create_module(project, name, sourcefolder=None): diff --git a/ropetest/contrib/generatetest.py b/ropetest/contrib/generatetest.py index 865e8d5aa..2a7402053 100644 --- a/ropetest/contrib/generatetest.py +++ b/ropetest/contrib/generatetest.py @@ -284,6 +284,32 @@ def test_generating_function_in_a_suite_in_a_function(self): ' if 1:\n g()\n', self.mod.read()) + def test_create_generate_class_with_goal_resource(self): + code = 'c = C()\n' + self.mod.write(code) + + result = generate.create_generate( + "class", + self.project, + self.mod, + code.index("C"), + goal_resource=self.mod2) + + self.assertTrue(isinstance(result, generate.GenerateClass)) + self.assertEqual(result.goal_resource, self.mod2) + + def test_create_generate_class_without_goal_resource(self): + code = 'c = C()\n' + self.mod.write(code) + + result = generate.create_generate( + "class", + self.project, + self.mod, + code.index("C")) + + self.assertTrue(isinstance(result, generate.GenerateClass)) + self.assertIsNone(result.goal_resource) if __name__ == '__main__': unittest.main()