Skip to content

Commit 1dc7f68

Browse files
committed
move the test
1 parent f399a9e commit 1dc7f68

File tree

2 files changed

+77
-75
lines changed

2 files changed

+77
-75
lines changed

test/DynamoCoreTests/PackageDependencyTests.cs

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@
88
using Dynamo.Graph.Workspaces;
99
using Dynamo.Interfaces;
1010
using Dynamo.Models;
11-
using Dynamo.PythonServices;
1211
using Dynamo.Scheduler;
1312
using Newtonsoft.Json;
1413
using Newtonsoft.Json.Linq;
1514
using NUnit.Framework;
16-
using PythonNodeModels;
1715

1816
namespace Dynamo.Tests
1917
{
@@ -30,13 +28,6 @@ protected override void GetLibrariesToPreload(List<string> libraries)
3028
base.GetLibrariesToPreload(libraries);
3129
}
3230

33-
private void UpdatePythonEngineAndRun(PythonNode pythonNode, string pythonEngineVersion)
34-
{
35-
pythonNode.EngineName = pythonEngineVersion;
36-
//to kick off a run node modified must be called
37-
pythonNode.OnNodeModified();
38-
}
39-
4031
private PackageDependencyInfo GetPackageInfo(string packageName)
4132
{
4233
var loader = GetPackageLoader();
@@ -106,69 +97,6 @@ public void ZeroTouchPackageDependencyIsCollectedAndSerialized()
10697
Assert.AreEqual(package.Nodes.Select(n => n.ToString("N")), nodes);
10798
}
10899

109-
[Test]
110-
public void PythonEnginePackageDependencyIsCollectedAndSerialized()
111-
{
112-
// Load JSON file graph
113-
string path = Path.Combine(TestDirectory, @"core\packageDependencyTests\PythonDependency.dyn");
114-
115-
// Assert package dependency is not already serialized to .dyn
116-
using (StreamReader file = new StreamReader(path))
117-
{
118-
var data = file.ReadToEnd();
119-
var json = (JObject)JsonConvert.DeserializeObject(data);
120-
Assert.IsEmpty(json[WorkspaceReadConverter.NodeLibraryDependenciesPropString]);
121-
}
122-
123-
string packageDirectory = Path.Combine(TestDirectory, @"core\packageDependencyTests\PythonEnginePackage");
124-
LoadPackage(packageDirectory);
125-
126-
OpenModel(path);
127-
128-
//TO-DO: Force load binaries or mock the python engine instead of loading a package
129-
//assert that default python engine was selected, and 2 different engines are loaded
130-
var currentws = CurrentDynamoModel.CurrentWorkspace;
131-
var pyNode = currentws.Nodes.OfType<PythonNode>().FirstOrDefault();
132-
Assert.IsNotNull(pyNode);
133-
Assert.AreEqual(pyNode.EngineName, PythonEngineManager.PythonNet3EngineName);
134-
Assert.AreEqual(PythonEngineManager.Instance.AvailableEngines.Count, 2);
135-
136-
currentws.ForceComputeWorkspaceReferences = true;
137-
var packageDependencies = currentws.NodeLibraryDependencies;
138-
// PythonNet3 is loaded as a default package, ww should have a single package dependency.
139-
Assert.AreEqual(1, packageDependencies.Count);
140-
141-
// Change engine to IronPython2, which is loaded as a package.
142-
UpdatePythonEngineAndRun(pyNode, "IronPython2");
143-
currentws.ForceComputeWorkspaceReferences = true;
144-
145-
//assert that python engine imported from a package gets added to NodeLibraryDependencies
146-
packageDependencies = currentws.NodeLibraryDependencies;
147-
Assert.AreEqual(1, packageDependencies.Count);
148-
var package = packageDependencies.First();
149-
Assert.AreEqual(new PackageDependencyInfo("DynamoIronPython2.7", new Version("3.2.1")), package);
150-
Assert.AreEqual(1, package.Nodes.Count);
151-
152-
Assert.IsTrue(package.IsLoaded);
153-
if (package is PackageDependencyInfo)
154-
{
155-
var packageDependencyState = ((PackageDependencyInfo)package).State;
156-
Assert.AreEqual(PackageDependencyState.Loaded, packageDependencyState);
157-
}
158-
159-
// Assert package dependency is serialized
160-
var ToJson = currentws.ToJson(CurrentDynamoModel.EngineController);
161-
var JObject = (JObject)JsonConvert.DeserializeObject(ToJson);
162-
var deserializedPackageDependencies = JObject[WorkspaceReadConverter.NodeLibraryDependenciesPropString];
163-
Assert.AreEqual(1, deserializedPackageDependencies.Count());
164-
var name = deserializedPackageDependencies.First()[NodeLibraryDependencyConverter.NamePropString].Value<string>();
165-
Assert.AreEqual(package.Name, name);
166-
var version = deserializedPackageDependencies.First()[NodeLibraryDependencyConverter.VersionPropString].Value<string>();
167-
Assert.AreEqual(package.Version.ToString(), version);
168-
var nodes = deserializedPackageDependencies.First()[NodeLibraryDependencyConverter.NodesPropString].Values<string>();
169-
Assert.AreEqual(package.Nodes.Select(n => n.ToString("N")), nodes);
170-
}
171-
172100
[Test]
173101
public void CustomNodePackageDependencyIsCollected()
174102
{

test/Libraries/DynamoPythonTests/PythonEngineSelectorTests.cs

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,30 @@
1-
using System;
2-
using System.Collections;
3-
using System.Linq;
41
using Dynamo;
2+
using Dynamo.Graph.Workspaces;
53
using Dynamo.PythonServices;
64
using Dynamo.PythonServices.EventHandlers;
75
using Dynamo.Utilities;
6+
using Newtonsoft.Json;
7+
using Newtonsoft.Json.Linq;
88
using NUnit.Framework;
99
using PythonNodeModels;
10+
using System;
11+
using System.Collections;
12+
using System.IO;
13+
using System.Linq;
1014
using static Dynamo.Models.DynamoModel;
1115

1216
namespace DynamoPythonTests
1317
{
1418
[TestFixture]
1519
class PythonEngineSelectorTests : DynamoModelTestBase
1620
{
21+
private void UpdatePythonEngineAndRun(PythonNode pythonNode, string pythonEngineVersion)
22+
{
23+
pythonNode.EngineName = pythonEngineVersion;
24+
//to kick off a run node modified must be called
25+
pythonNode.OnNodeModified();
26+
}
27+
1728
/// <summary>
1829
/// This test will cover the use case of the API to query certain Python engine ability for evaluation
1930
/// </summary>
@@ -24,6 +35,69 @@ public void TestEngineSelectorInitialization()
2435
Assert.AreEqual(false, PythonEngineManager.Instance.AvailableEngines.Any(x => x.Name == PythonEngineManager.IronPython2EngineName));
2536
}
2637

38+
[Test]
39+
public void PythonEnginePackageDependencyIsCollectedAndSerialized()
40+
{
41+
// Load JSON file graph
42+
string path = Path.Combine(TestDirectory, @"core\packageDependencyTests\PythonDependency.dyn");
43+
44+
// Assert package dependency is not already serialized to .dyn
45+
using (StreamReader file = new StreamReader(path))
46+
{
47+
var data = file.ReadToEnd();
48+
var json = (JObject)JsonConvert.DeserializeObject(data);
49+
Assert.IsEmpty(json[WorkspaceReadConverter.NodeLibraryDependenciesPropString]);
50+
}
51+
52+
string packageDirectory = Path.Combine(TestDirectory, @"core\packageDependencyTests\PythonEnginePackage");
53+
LoadPackage(packageDirectory);
54+
55+
OpenModel(path);
56+
57+
//TO-DO: Force load binaries or mock the python engine instead of loading a package
58+
//assert that default python engine was selected, and 2 different engines are loaded
59+
var currentws = CurrentDynamoModel.CurrentWorkspace;
60+
var pyNode = currentws.Nodes.OfType<PythonNode>().FirstOrDefault();
61+
Assert.IsNotNull(pyNode);
62+
Assert.AreEqual(pyNode.EngineName, PythonEngineManager.PythonNet3EngineName);
63+
Assert.AreEqual(PythonEngineManager.Instance.AvailableEngines.Count, 2);
64+
65+
currentws.ForceComputeWorkspaceReferences = true;
66+
var packageDependencies = currentws.NodeLibraryDependencies;
67+
// PythonNet3 is loaded as a default package, ww should have a single package dependency.
68+
Assert.AreEqual(1, packageDependencies.Count);
69+
70+
// Change engine to IronPython2, which is loaded as a package.
71+
UpdatePythonEngineAndRun(pyNode, "IronPython2");
72+
currentws.ForceComputeWorkspaceReferences = true;
73+
74+
//assert that python engine imported from a package gets added to NodeLibraryDependencies
75+
packageDependencies = currentws.NodeLibraryDependencies;
76+
Assert.AreEqual(1, packageDependencies.Count);
77+
var package = packageDependencies.First();
78+
Assert.AreEqual(new PackageDependencyInfo("DynamoIronPython2.7", new Version("3.2.1")), package);
79+
Assert.AreEqual(1, package.Nodes.Count);
80+
81+
Assert.IsTrue(package.IsLoaded);
82+
if (package is PackageDependencyInfo)
83+
{
84+
var packageDependencyState = ((PackageDependencyInfo)package).State;
85+
Assert.AreEqual(PackageDependencyState.Loaded, packageDependencyState);
86+
}
87+
88+
// Assert package dependency is serialized
89+
var ToJson = currentws.ToJson(CurrentDynamoModel.EngineController);
90+
var JObject = (JObject)JsonConvert.DeserializeObject(ToJson);
91+
var deserializedPackageDependencies = JObject[WorkspaceReadConverter.NodeLibraryDependenciesPropString];
92+
Assert.AreEqual(1, deserializedPackageDependencies.Count());
93+
var name = deserializedPackageDependencies.First()[NodeLibraryDependencyConverter.NamePropString].Value<string>();
94+
Assert.AreEqual(package.Name, name);
95+
var version = deserializedPackageDependencies.First()[NodeLibraryDependencyConverter.VersionPropString].Value<string>();
96+
Assert.AreEqual(package.Version.ToString(), version);
97+
var nodes = deserializedPackageDependencies.First()[NodeLibraryDependencyConverter.NodesPropString].Values<string>();
98+
Assert.AreEqual(package.Nodes.Select(n => n.ToString("N")), nodes);
99+
}
100+
27101
[Test]
28102
public void CanCopydAndPasteAndUndoPythonEngine()
29103
{

0 commit comments

Comments
 (0)