Skip to content

Commit

Permalink
Merge pull request #332 from climbus/master
Browse files Browse the repository at this point in the history
create_generate with goal_resource param
  • Loading branch information
mcepl committed Mar 7, 2021
2 parents 1876b3e + d6126a8 commit 0aec7ea
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
4 changes: 2 additions & 2 deletions rope/contrib/generate.py
Expand Up @@ -5,15 +5,15 @@
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
'package'.
"""
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):
Expand Down
26 changes: 26 additions & 0 deletions ropetest/contrib/generatetest.py
Expand Up @@ -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()

0 comments on commit 0aec7ea

Please sign in to comment.