本文整理汇总了C#中TestUtilities.UI.Python.PythonVisualStudioApp.CreateVirtualEnvironment方法的典型用法代码示例。如果您正苦于以下问题:C# PythonVisualStudioApp.CreateVirtualEnvironment方法的具体用法?C# PythonVisualStudioApp.CreateVirtualEnvironment怎么用?C# PythonVisualStudioApp.CreateVirtualEnvironment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TestUtilities.UI.Python.PythonVisualStudioApp
的用法示例。
在下文中一共展示了PythonVisualStudioApp.CreateVirtualEnvironment方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CustomCommandsRequiredPackages
public void CustomCommandsRequiredPackages() {
using (var app = new PythonVisualStudioApp())
using (var dis = app.SelectDefaultInterpreter(PythonVersion, "virtualenv")) {
PythonProjectNode node;
EnvDTE.Project proj;
OpenProject(app, "CommandRequirePackages.sln", out node, out proj);
string envName;
var env = app.CreateVirtualEnvironment(proj, out envName);
env.Select();
app.Dte.ExecuteCommand("Python.ActivateEnvironment");
// Ensure that no error dialog appears
app.WaitForNoDialog(TimeSpan.FromSeconds(5.0));
// First, execute the command and cancel it.
var task = ExecuteAsync(node, "Require Packages");
try {
var dialogHandle = app.WaitForDialog(task);
if (dialogHandle == IntPtr.Zero) {
if (task.IsFaulted && task.Exception != null) {
Assert.Fail("Unexpected exception in package install confirmation dialog:\n{0}", task.Exception);
} else {
Assert.AreNotEqual(IntPtr.Zero, dialogHandle);
}
}
using (var dialog = new AutomationDialog(app, AutomationElement.FromHandle(dialogHandle))) {
var label = dialog.FindByAutomationId("CommandLink_1000");
Assert.IsNotNull(label);
string expectedLabel =
"The following packages will be installed using pip:\r\n" +
"\r\n" +
"ptvsd\r\n" +
"azure==0.1"; ;
Assert.AreEqual(expectedLabel, label.Current.HelpText);
dialog.Cancel();
try {
task.Wait(1000);
Assert.Fail("Command was not canceled after dismissing the package install confirmation dialog");
} catch (AggregateException ex) {
if (!(ex.InnerException is TaskCanceledException)) {
throw;
}
}
}
} finally {
if (!task.IsCanceled && !task.IsCompleted && !task.IsFaulted) {
if (task.Wait(10000)) {
task.Dispose();
}
} else {
task.Dispose();
}
}
// Then, execute command and allow it to proceed.
task = ExecuteAsync(node, "Require Packages");
try {
var dialogHandle = app.WaitForDialog(task);
if (dialogHandle == IntPtr.Zero) {
if (task.IsFaulted && task.Exception != null) {
Assert.Fail("Unexpected exception in package install confirmation dialog:\n{0}", task.Exception);
} else {
Assert.AreNotEqual(IntPtr.Zero, dialogHandle);
}
}
using (var dialog = new AutomationDialog(app, AutomationElement.FromHandle(dialogHandle))) {
dialog.ClickButtonAndClose("CommandLink_1000", nameIsAutomationId: true);
}
task.Wait();
var ver = PythonVersion.Version.ToVersion();
ExpectOutputWindowText(app, string.Format("pass {0}.{1}", ver.Major, ver.Minor));
} finally {
if (!task.IsCanceled && !task.IsCompleted && !task.IsFaulted) {
if (task.Wait(10000)) {
task.Dispose();
}
} else {
task.Dispose();
}
}
}
}
示例2: VirtualEnvironmentReplWorkingDirectory
public void VirtualEnvironmentReplWorkingDirectory() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
string envName;
var env = app.CreateVirtualEnvironment(project, out envName);
EnvironmentReplWorkingDirectoryTest(app, project, env, envName);
}
}
示例3: InstallUninstallPackage
public void InstallUninstallPackage() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
string envName;
var env = app.CreateVirtualEnvironment(project, out envName);
env.Select();
using (var installPackage = AutomationDialog.FromDte(app, "Python.InstallPackage")) {
var packageName = new TextBox(installPackage.FindByAutomationId("Name"));
packageName.SetValue("azure==0.6.2");
installPackage.ClickButtonAndClose("OK", nameIsAutomationId: true);
}
var azure = app.SolutionExplorerTreeView.WaitForChildOfProject(
project,
SR.GetString(SR.Environments),
envName,
"azure (0.6.2)"
);
azure.Select();
using (var confirmation = AutomationDialog.FromDte(app, "Edit.Delete")) {
confirmation.OK();
}
app.SolutionExplorerTreeView.WaitForChildOfProjectRemoved(
project,
SR.GetString(SR.Environments),
envName,
"azure (0.6.2)"
);
}
}
示例4: NoGlobalSitePackages
public void NoGlobalSitePackages() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
string envName, envPath;
var env = app.CreateVirtualEnvironment(project, out envName, out envPath);
env.Select();
// Need to wait for analysis to complete before checking database
for (int retries = 120;
Process.GetProcessesByName("Microsoft.PythonTools.Analyzer").Any() && retries > 0;
--retries) {
Thread.Sleep(1000);
}
// Need to wait some more for the database to be loaded.
Thread.Sleep(5000);
// Ensure virtualenv_support is NOT available in the virtual environment.
var interp = project.GetPythonProject().GetInterpreter();
Assert.IsNull(interp.ImportModule("virtualenv_support"));
}
}
示例5: CreateVEnv
public void CreateVEnv() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init3(app)) {
if (dis.CurrentDefault.FindModules("virtualenv").Contains("virtualenv")) {
Pip.Uninstall(app.ServiceProvider, dis.CurrentDefault, "virtualenv", false).Wait();
}
Assert.AreEqual(0, Microsoft.PythonTools.Analysis.ModulePath.GetModulesInLib(dis.CurrentDefault)
.Count(mp => mp.FullName == "virtualenv"),
string.Format("Failed to uninstall 'virtualenv' from {0}", dis.CurrentDefault.Configuration.PrefixPath)
);
var project = CreateTemporaryProject(app);
string envName, envPath;
var env = app.CreateVirtualEnvironment(project, out envName, out envPath);
Assert.IsNotNull(env);
Assert.IsNotNull(env.Element);
Assert.AreEqual(string.Format("env (Python {0}3.{1})",
dis.CurrentDefault.Configuration.Architecture == ProcessorArchitecture.Amd64 ? "64-bit " : "",
dis.CurrentDefault.Configuration.Version.Minor
), envName);
}
}
示例6: RemoveVirtualEnv
public void RemoveVirtualEnv() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
string envName, envPath;
var env = app.CreateVirtualEnvironment(project, out envName, out envPath);
env.Select();
using (var removeDeleteDlg = RemoveItemDialog.FromDte(app)) {
removeDeleteDlg.Remove();
}
app.OpenSolutionExplorer().WaitForChildOfProjectRemoved(
project,
SR.GetString(SR.Environments),
envName
);
var projectHome = (string)project.Properties.Item("ProjectHome").Value;
envPath = Path.Combine(projectHome, envPath);
Assert.IsTrue(Directory.Exists(envPath), envPath);
}
}
示例7: DeleteVirtualEnv
public void DeleteVirtualEnv() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var options = app.GetService<PythonToolsService>().GeneralOptions;
var oldAutoAnalyze = options.AutoAnalyzeStandardLibrary;
app.OnDispose(() => { options.AutoAnalyzeStandardLibrary = oldAutoAnalyze; options.Save(); });
options.AutoAnalyzeStandardLibrary = false;
options.Save();
var project = CreateTemporaryProject(app);
string envName, envPath;
TreeNode env;
using (var ps = new ProcessScope("Microsoft.PythonTools.Analyzer")) {
env = app.CreateVirtualEnvironment(project, out envName, out envPath);
Assert.IsFalse(ps.WaitForNewProcess(TimeSpan.FromSeconds(10)).Any(), "Unexpected analyzer processes");
}
// Need to wait some more for the database to be loaded.
app.WaitForNoDialog(TimeSpan.FromSeconds(10.0));
env.Select();
using (var removeDeleteDlg = RemoveItemDialog.FromDte(app)) {
removeDeleteDlg.Delete();
}
app.WaitForNoDialog(TimeSpan.FromSeconds(5.0));
app.OpenSolutionExplorer().WaitForChildOfProjectRemoved(
project,
SR.GetString(SR.Environments),
envName
);
var projectHome = (string)project.Properties.Item("ProjectHome").Value;
envPath = Path.Combine(projectHome, envPath);
for (int retries = 10;
Directory.Exists(envPath) && retries > 0;
--retries) {
Thread.Sleep(1000);
}
Assert.IsFalse(Directory.Exists(envPath), envPath);
}
}
示例8: ActivateVirtualEnv
public void ActivateVirtualEnv() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
Assert.AreNotEqual(null, project.ProjectItems.Item(Path.GetFileNameWithoutExtension(app.Dte.Solution.FullName) + ".py"));
var id0 = Guid.Parse((string)project.Properties.Item("InterpreterId").Value);
string envName1, envName2;
var env1 = app.CreateVirtualEnvironment(project, out envName1);
var env2 = app.CreateVirtualEnvironment(project, out envName2);
var id1 = Guid.Parse((string)project.Properties.Item("InterpreterId").Value);
Assert.AreNotEqual(id0, id1);
env2.Select();
app.Dte.ExecuteCommand("Python.ActivateEnvironment");
var id2 = Guid.Parse((string)project.Properties.Item("InterpreterId").Value);
Assert.AreNotEqual(id0, id2);
Assert.AreNotEqual(id1, id2);
// Change the selected node
app.SolutionExplorerTreeView.SelectProject(project);
app.Dte.ExecuteCommand("Python.ActivateEnvironment", "/env:\"" + envName1 + "\"");
var id1b = Guid.Parse((string)project.Properties.Item("InterpreterId").Value);
Assert.AreEqual(id1, id1b);
}
}
示例9: LoadVirtualEnv
public void LoadVirtualEnv() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
var projectName = project.UniqueName;
string envName;
var env = app.CreateVirtualEnvironment(project, out envName);
var solution = app.Dte.Solution.FullName;
app.Dte.Solution.Close(true);
app.Dte.Solution.Open(solution);
project = app.Dte.Solution.Item(projectName);
app.OpenSolutionExplorer().WaitForChildOfProject(
project,
SR.GetString(SR.Environments),
envName
);
}
}
示例10: InstallGenerateRequirementsTxt
public void InstallGenerateRequirementsTxt() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
string envName;
var env = app.CreateVirtualEnvironment(project, out envName);
env.Select();
try {
app.ExecuteCommand("Python.InstallRequirementsTxt", "/y", timeout: 5000);
Assert.Fail("Command should not have executed");
} catch (AggregateException ae) {
ae.Handle(ex => ex is COMException);
} catch (COMException) {
}
var requirementsTxt = Path.Combine(Path.GetDirectoryName(project.FullName), "requirements.txt");
File.WriteAllText(requirementsTxt, "azure==0.6.2");
app.ExecuteCommand("Python.InstallRequirementsTxt", "/y");
app.SolutionExplorerTreeView.WaitForChildOfProject(
project,
SR.GetString(SR.Environments),
envName,
"azure (0.6.2)"
);
File.Delete(requirementsTxt);
app.ExecuteCommand("Python.GenerateRequirementsTxt", "/e:\"" + envName + "\"");
app.SolutionExplorerTreeView.WaitForChildOfProject(
project,
"requirements.txt"
);
AssertUtil.ContainsAtLeast(
File.ReadAllLines(requirementsTxt).Select(s => s.Trim()),
"azure==0.6.2"
);
}
}
示例11: CreateInstallRequirementsTxt
public void CreateInstallRequirementsTxt() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
var projectHome = project.GetPythonProject().ProjectHome;
File.WriteAllText(Path.Combine(projectHome, "requirements.txt"), "azure==0.6.2");
string envName;
var env = app.CreateVirtualEnvironment(project, out envName);
env.Select();
app.SolutionExplorerTreeView.WaitForChildOfProject(
project,
SR.GetString(SR.Environments),
envName,
"azure (0.6.2)"
);
}
}
示例12: InstallUninstallPackage
public void InstallUninstallPackage() {
using (var app = new PythonVisualStudioApp())
using (var dis = Init(app)) {
var project = CreateTemporaryProject(app);
string envName;
var env = app.CreateVirtualEnvironment(project, out envName);
env.Select();
app.ExecuteCommand("Python.InstallPackage", "/p:" + TestPackageSpec);
var azure = app.SolutionExplorerTreeView.WaitForChildOfProject(
project,
Strings.Environments,
envName,
TestPackageDisplay
);
azure.Select();
using (var confirmation = AutomationDialog.FromDte(app, "Edit.Delete")) {
confirmation.OK();
}
app.SolutionExplorerTreeView.WaitForChildOfProjectRemoved(
project,
Strings.Environments,
envName,
TestPackageDisplay
);
}
}