1+ import subprocess
2+ import time
3+
14from robot .libraries .BuiltIn import BuiltIn
2- from SeleniumLibrary .base import keyword
3- from SeleniumLibrary .base import LibraryComponent
5+ from SeleniumLibrary .base import LibraryComponent , keyword
46from six .moves .urllib .request import urlopen
57from tornado .escape import json_decode
68
7- import subprocess
8- import time
9-
109
1110class NBServer (object ):
1211 process = None
@@ -63,11 +62,21 @@ def wait_for_jupyter_server_to_be_ready(self, *nbservers, **kwargs):
6362 time .sleep (interval )
6463 last_error = err
6564
66- assert ready == len (nbservers ), "Only {} of {} servers were ready: {}" .format (
65+ assert ready == len (
66+ nbservers
67+ ), "Only {} of {} servers were ready. Last error: {}" .format (
6768 ready , len (nbservers ), last_error
6869 )
6970 return ready
7071
72+ @keyword
73+ def wait_for_new_jupyter_server_to_be_ready (
74+ self , command = None , * arguments , ** configuration
75+ ):
76+ handle = self .start_new_jupyter_server (command , * arguments , ** configuration )
77+ self .wait_for_jupyter_server_to_be_ready (handle )
78+ return handle
79+
7180 @keyword
7281 def terminate_all_jupyter_servers (self , kill = False ):
7382 """ Close all Jupyter servers started by JupyterLibrary
@@ -82,6 +91,14 @@ def terminate_all_jupyter_servers(self, kill=False):
8291
8392 return terminated
8493
94+ @keyword
95+ def get_jupyter_server_info (self , nbserver = None ):
96+ nbserver = nbserver or self ._nbserver_handles [- 1 ]
97+ plib = BuiltIn ().get_library_instance ("Process" )
98+ nbpopen = plib .get_process_object (nbserver )
99+ nbj = self .get_jupyter_servers ()[nbpopen .pid ]
100+ return nbj
101+
85102 def get_jupyter_servers (self ):
86103 nbservers = list (
87104 map (
0 commit comments