public async Task GetCorrectProfilePaths() { using var kernel = new PowerShellKernel().UseProfiles(); // Set variables we will retrieve later. await kernel.SubmitCodeAsync("$currentUserCurrentHost = $PROFILE.CurrentUserCurrentHost"); await kernel.SubmitCodeAsync("$allUsersCurrentHost = $PROFILE.AllUsersCurrentHost"); kernel.TryGetVariable("currentUserCurrentHost", out object profileObj).Should().BeTrue(); profileObj.Should().BeOfType <string>(); string currentUserCurrentHost = profileObj.As <string>(); // Get $PROFILE default. kernel.TryGetVariable("PROFILE", out profileObj).Should().BeTrue(); profileObj.Should().BeOfType <string>(); string profileDefault = profileObj.As <string>(); // Check that $PROFILE is not null or empty and it is the same as // $PROFILE.CurrentUserCurrentHost profileDefault.Should().NotBeNullOrEmpty(); profileDefault.Should().Be(currentUserCurrentHost); kernel.TryGetVariable("allUsersCurrentHost", out profileObj).Should().BeTrue(); profileObj.Should().BeOfType <string>(); string allUsersCurrentHost = profileObj.As <string>(); // Check that $PROFILE.AllUsersCurrentHost is what we expect it is: // $PSHOME + Microsoft.dotnet-interactive_profile.ps1 allUsersCurrentHost.Should().Be(_allUsersCurrentHostProfilePath); }
public static PowerShellKernel UseJupyterHelpers( this PowerShellKernel kernel) { kernel.ReadInput = TopLevelMethods.input; kernel.ReadPassword = TopLevelMethods.password; return(kernel); }
internal PSKernelHostUserInterface(PowerShellKernel powerShellKernel) { _powerShellKernel = powerShellKernel ?? throw new ArgumentNullException(nameof(powerShellKernel)); _rawUI = new PSKernelHostRawUserInterface(); _instanceLock = new object(); }
internal PSKernelHost(PowerShellKernel powerShell) { _powerShell = powerShell ?? throw new ArgumentNullException(nameof(powerShell)); _hostVersion = new Version("0.0.1"); _instanceId = Guid.NewGuid(); _ui = new PSKernelHostUserInterface(_powerShell); _consoleColorProxy = PSObject.AsPSObject(new ConsoleColorProxy(_ui)); }
public async Task TryGetVariable_unwraps_PowerShell_object(string code, Type expectedType) { using var kernel = new PowerShellKernel(); await kernel.SubmitCodeAsync(code); kernel.TryGetVariable("x", out object fi).Should().BeTrue(); fi.Should().BeOfType(expectedType); }
public static PowerShellKernel UseVSCodeHelpers(this PowerShellKernel kernel) { kernel.ReadInput = prompt => Task.Run(() => VSCodeInteractiveHost.GetInputAsync(prompt: prompt)).Result; kernel.ReadPassword = prompt => { var value = Task.Run(() => VSCodeInteractiveHost.GetInputAsync(prompt: prompt, isPassword: true)).Result; return(new PasswordString(value)); }; return(kernel); }
protected JupyterRequestHandlerTestBase(ITestOutputHelper output) { _disposables.Add(output.SubscribeToPocketLogger()); _cSharpKernel = new CSharpKernel() .UseNugetDirective() .UseDefaultFormatting() .UseKernelHelpers() .UseJupyterHelpers() .UseMathAndLaTeX(); _fSharpKernel = new FSharpKernel() .UseNugetDirective() .UseDefaultFormatting() .UseKernelHelpers() .UseDefaultNamespaces() .UseMathAndLaTeX(); _psKernel = new PowerShellKernel() .UseJupyterHelpers(); _compositeKernel = new CompositeKernel { _cSharpKernel, _fSharpKernel, _psKernel, new HtmlKernel(), new JavaScriptKernel() } .UseDefaultMagicCommands(); SetKernelLanguage(Language.CSharp); _compositeKernel.Name = ".NET"; Kernel = _compositeKernel; JupyterMessageSender = new RecordingJupyterMessageSender(); _disposables.Add(_compositeKernel); _disposables.Add(Kernel.LogEventsToPocketLogger()); }
public async Task VerifyAllUsersProfileRuns() { var randomVariableName = Path.GetRandomFileName().Split('.')[0]; File.WriteAllText(_allUsersCurrentHostProfilePath, $"$global:{randomVariableName} = $true"); try { using var kernel = new PowerShellKernel().UseProfiles(); // trigger first time setup. await kernel.SubmitCodeAsync("Get-Date"); kernel.TryGetVariable(randomVariableName, out object profileObj).Should().BeTrue(); profileObj.Should().BeOfType <bool>(); profileObj.As <bool>().Should().BeTrue(); } finally { File.Delete(_allUsersCurrentHostProfilePath); } }