diff --git a/src/PythonMigrationViewExtension/MigrationAssistant/migrate_2to3.py b/src/PythonMigrationViewExtension/MigrationAssistant/migrate_2to3.py index 2a323fffee8..7605ffb9745 100644 --- a/src/PythonMigrationViewExtension/MigrationAssistant/migrate_2to3.py +++ b/src/PythonMigrationViewExtension/MigrationAssistant/migrate_2to3.py @@ -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) diff --git a/src/PythonMigrationViewExtension/MigrationAssistant/python_migration_fixers/fix_add_reference_to_file_and_path.py b/src/PythonMigrationViewExtension/MigrationAssistant/python_migration_fixers/fix_add_reference_to_file_and_path.py new file mode 100644 index 00000000000..04a235980b1 --- /dev/null +++ b/src/PythonMigrationViewExtension/MigrationAssistant/python_migration_fixers/fix_add_reference_to_file_and_path.py @@ -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)) diff --git a/test/DynamoCoreTests/PythonMigrationAssistantTests.cs b/test/DynamoCoreTests/PythonMigrationAssistantTests.cs index edff390c91b..d34c8f0a91c 100644 --- a/test/DynamoCoreTests/PythonMigrationAssistantTests.cs +++ b/test/DynamoCoreTests/PythonMigrationAssistantTests.cs @@ -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); + } + } }