Skip to content

Commit

Permalink
DYN-3529: Migrate clr.AddReferenceToFileAndPath() to clr.AddReference…
Browse files Browse the repository at this point in the history
…() in python migration tool (#11708)

* AddReferenceToFileAndPath fixer

* Hardening pattern

* Add test.
  • Loading branch information
sm6srw authored May 26, 2021
1 parent 24c66bc commit 0eb7f14
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def transform(source):
fixers = get_all_fixers_from_zipfolder(python_zip_folder)

sys.path.append(os.path.join(path_name, '.\\python_migration_fixers'))
fixers.extend(['fix_none'])
fixers.extend(['fix_none', 'fix_add_reference_to_file_and_path'])

refactoring_tool = RefactoringTool(fixers)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Local imports

from lib2to3.fixer_base import BaseFix
from lib2to3.fixer_util import Name

#
# Rename AddReferenceToFileAndPath -> AddReference
#

class FixAddReferenceToFileAndPath(BaseFix):

PATTERN = """
power< any+ trailer< '.' fixnode='AddReferenceToFileAndPath'> any* >
"""

def transform(self, node, results):
fixnode = results['fixnode']
fixnode.replace(Name('AddReference', prefix=fixnode.prefix))
18 changes: 18 additions & 0 deletions test/DynamoCoreTests/PythonMigrationAssistantTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,5 +94,23 @@ from System.Windows.Forms import *
var actual = ScriptMigrator.MigrateCode(original);
Assert.AreEqual(expected, actual);
}

[Test]
public void CanMigrateFixAddReferenceToFileAndPathToPython3AddReference()
{
var original = @"
import sys
import clr
clr.AddReferenceToFileAndPath('System.Windows.Forms')
";
var expected = @"
import sys
import clr
clr.AddReference('System.Windows.Forms')
";
var actual = ScriptMigrator.MigrateCode(original);
Assert.AreEqual(expected, actual);
}

}
}

0 comments on commit 0eb7f14

Please sign in to comment.