def test_python_interpreter(tmpdir): """Test the validation of the python interpreter.""" # Set a non existing python interpreter interpreter = str(tmpdir.mkdir('interpreter').join('python')) CONF.set('main_interpreter', 'default', False) CONF.set('main_interpreter', 'custom', True) CONF.set('main_interpreter', 'executable', interpreter) # Create a kernel spec kernel_spec = SpyderKernelSpec() # Assert that the python interprerter is the default one assert interpreter not in kernel_spec.argv assert CONF.get('main_interpreter', 'default') assert not CONF.get('main_interpreter', 'custom')
def start_new_kernel(startup_timeout=60, kernel_name='python', spykernel=False, **kwargs): """Start a new kernel, and return its Manager and Client""" km = KernelManager(kernel_name=kernel_name) if spykernel: km._kernel_spec = SpyderKernelSpec() km.start_kernel(**kwargs) kc = km.client() kc.start_channels() try: kc.wait_for_ready(timeout=startup_timeout) except RuntimeError: kc.stop_channels() km.shutdown_kernel() raise return km, kc
def test_env_vars(): """Test that we are correctly encoding env vars in our kernel spec""" # Create a variable with the file system encoding and save it # in our PYTHONPATH env_var = to_fs_from_unicode(u'ñññ') CONF.set('main', 'spyder_pythonpath', [env_var]) # Create a kernel spec kernel_spec = SpyderKernelSpec() # Assert PYTHONPATH is in env vars and it's not empty assert kernel_spec.env['PYTHONPATH'] != '' # Assert all env vars are binary strings assert all([is_binary_string(v) for v in kernel_spec.env.values()]) # Remove our entry from PYTHONPATH CONF.set('main', 'spyder_pythonpath', [])
def test_preserve_pypath(tmpdir, default_interpreter): """ Test that we preserve PYTHONPATH in the env vars passed to the kernel when an external interpreter is used or not. Regression test for issue 8681. """ # Set default interpreter value CONF.set('main_interpreter', 'default', default_interpreter) # Add a path to PYTHONPATH env var pypath = to_text_string(tmpdir.mkdir('test-pypath')) os.environ['PYTHONPATH'] = pypath # Check that PYTHONPATH is in our kernelspec kernel_spec = SpyderKernelSpec() assert pypath in kernel_spec.env['PYTHONPATH'] # Restore default value CONF.set('main_interpreter', 'default', True)