Esempio n. 1
0
def test_kernel_pypath(tmpdir, default_interpreter):
    """
    Test that PYTHONPATH and spyder_pythonpath option are properly handled
    when an external interpreter is used or not.

    Regression test for spyder-ide/spyder#8681.
    Regression test for spyder-ide/spyder#17511.
    """
    # Set default interpreter value
    CONF.set('main_interpreter', 'default', default_interpreter)

    # Add a path to PYTHONPATH and spyder_pythonpath config option
    pypath = to_text_string(tmpdir.mkdir('test-pypath'))
    os.environ['PYTHONPATH'] = pypath
    CONF.set('main', 'spyder_pythonpath', [pypath])

    kernel_spec = SpyderKernelSpec()

    # Check that PYTHONPATH is not in our kernelspec
    # and pypath is in SPY_PYTHONPATH
    assert 'PYTHONPATH' not in kernel_spec.env
    assert pypath in kernel_spec.env['SPY_PYTHONPATH']

    # Restore default values
    CONF.set('main_interpreter', 'default', True)
    CONF.set('main', 'spyder_pythonpath', [])
Esempio n. 2
0
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')
Esempio n. 3
0
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', [])
Esempio n. 4
0
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 spyder-ide/spyder#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)