diff --git a/src/DynamoCore/DynamoCore.csproj b/src/DynamoCore/DynamoCore.csproj index 600a0e12524..95b9ef16391 100644 --- a/src/DynamoCore/DynamoCore.csproj +++ b/src/DynamoCore/DynamoCore.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/PythonMigrationViewExtension/PythonMigrationViewExtension.csproj b/src/PythonMigrationViewExtension/PythonMigrationViewExtension.csproj index 5ebe58afef0..43327b40098 100644 --- a/src/PythonMigrationViewExtension/PythonMigrationViewExtension.csproj +++ b/src/PythonMigrationViewExtension/PythonMigrationViewExtension.csproj @@ -15,7 +15,7 @@ - + runtime;native;contentFiles;build;buildTransitive;analyzers all diff --git a/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj b/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj index e76ae8381d5..6f12ddb0940 100644 --- a/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj +++ b/test/Libraries/DynamoPythonTests/DynamoPythonTests.csproj @@ -22,7 +22,7 @@ - + runtime;native;contentFiles;build;buildTransitive;analyzers all diff --git a/test/Libraries/DynamoPythonTests/PythonEvalTestsWithLibraries.cs b/test/Libraries/DynamoPythonTests/PythonEvalTestsWithLibraries.cs index 1449b4cff7d..ce03437de7a 100644 --- a/test/Libraries/DynamoPythonTests/PythonEvalTestsWithLibraries.cs +++ b/test/Libraries/DynamoPythonTests/PythonEvalTestsWithLibraries.cs @@ -44,14 +44,7 @@ from FFITarget import DummyMath } } - /// - /// PythonNet3 vs DesignScript list interop issue: - /// DSCore list ops expect DS lists; PythonNet passes .NET lists, causing wrong overloads/comparers. - /// Quarantined until parity fix. - /// [Test] - [Category("Failure")] - [Category("TechDebt")] public void TestListDecoding() { string code = @" @@ -344,6 +337,52 @@ import DSCore } } + [Test] + public void TryDecode_ConvertsNestedPythonListsToClrLists() + { + string code = @" +import clr +clr.AddReference('DSCoreNodes') +from DSCore import List + +data = [[[1, 2], [3]], [[4, 5], [6]]] +OUT = data, List.Flatten(data, 1), List.Flatten(data, 2), List.Flatten(data) +"; + var emptyInputs = new ArrayList(); + var expected = new ArrayList + { + new ArrayList + { + new ArrayList + { + new ArrayList { 1, 2 }, + new ArrayList { 3 } + }, + new ArrayList + { + new ArrayList { 4, 5 }, + new ArrayList { 6 } + } + }, + new ArrayList + { + new ArrayList { 1, 2 }, + new ArrayList { 3 }, + new ArrayList { 4, 5 }, + new ArrayList { 6 } + }, + new ArrayList { 1, 2, 3, 4, 5, 6 }, + new ArrayList { 1, 2, 3, 4, 5, 6 } + }; + + foreach (var pythonEvaluator in Evaluators) + { + var result = pythonEvaluator(code, emptyInputs, emptyInputs); + Assert.That(result, Is.InstanceOf()); + CollectionAssert.AreEqual(expected, result as IEnumerable); + } + } + private void DictionaryAssert(IDictionary expected, IDictionary actual) { Assert.AreEqual(expected.Count, actual.Count); diff --git a/test/Libraries/DynamoPythonTests/PythonTestsWithLogging.cs b/test/Libraries/DynamoPythonTests/PythonTestsWithLogging.cs index 44755574515..27fc93c9bb5 100644 --- a/test/Libraries/DynamoPythonTests/PythonTestsWithLogging.cs +++ b/test/Libraries/DynamoPythonTests/PythonTestsWithLogging.cs @@ -47,6 +47,7 @@ public void DynamoPrintLogsToConsole() } [Test] + [Category("Failure")] public void ResetCypythonLogsToConsoleAfterRun() { (CurrentDynamoModel.CurrentWorkspace as HomeWorkspaceModel).RunSettings.RunType = RunType.Manual;