test_application.py
73 lines
| 2.2 KiB
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r3453 | # coding: utf-8 | ||
Thomas Kluyver
|
r3451 | """Tests for IPython.core.application""" | ||
import os | ||||
import tempfile | ||||
Min RK
|
r22585 | import nose.tools as nt | ||
from traitlets import Unicode | ||||
MinRK
|
r4023 | from IPython.core.application import BaseIPythonApplication | ||
Thomas Spura
|
r5810 | from IPython.testing import decorators as dec | ||
Min RK
|
r22585 | from IPython.utils.tempdir import TemporaryDirectory | ||
Thomas Kluyver
|
r3451 | |||
Thomas Spura
|
r5810 | @dec.onlyif_unicode_paths | ||
Thomas Kluyver
|
r3451 | def test_unicode_cwd(): | ||
Thomas Kluyver
|
r3452 | """Check that IPython starts with non-ascii characters in the path.""" | ||
Thomas Kluyver
|
r3453 | wd = tempfile.mkdtemp(suffix=u"€") | ||
Thomas Kluyver
|
r3451 | |||
Srinivas Reddy Thatiparthy
|
r23045 | old_wd = os.getcwd() | ||
Thomas Kluyver
|
r3451 | os.chdir(wd) | ||
Srinivas Reddy Thatiparthy
|
r23045 | #raise Exception(repr(os.getcwd())) | ||
Thomas Kluyver
|
r3451 | try: | ||
MinRK
|
r4023 | app = BaseIPythonApplication() | ||
Thomas Kluyver
|
r3451 | # The lines below are copied from Application.initialize() | ||
MinRK
|
r4023 | app.init_profile_dir() | ||
app.init_config_files() | ||||
app.load_config_file(suppress_errors=False) | ||||
Thomas Kluyver
|
r3451 | finally: | ||
os.chdir(old_wd) | ||||
Thomas Kluyver
|
r3903 | |||
Thomas Spura
|
r5810 | @dec.onlyif_unicode_paths | ||
Thomas Kluyver
|
r3452 | def test_unicode_ipdir(): | ||
"""Check that IPython starts with non-ascii characters in the IP dir.""" | ||||
Thomas Kluyver
|
r3453 | ipdir = tempfile.mkdtemp(suffix=u"€") | ||
Thomas Kluyver
|
r3452 | |||
# Create the config file, so it tries to load it. | ||||
with open(os.path.join(ipdir, 'ipython_config.py'), "w") as f: | ||||
pass | ||||
old_ipdir1 = os.environ.pop("IPYTHONDIR", None) | ||||
old_ipdir2 = os.environ.pop("IPYTHON_DIR", None) | ||||
Srinivas Reddy Thatiparthy
|
r23039 | os.environ["IPYTHONDIR"] = ipdir | ||
Thomas Kluyver
|
r3452 | try: | ||
MinRK
|
r4023 | app = BaseIPythonApplication() | ||
Thomas Kluyver
|
r3452 | # The lines below are copied from Application.initialize() | ||
MinRK
|
r4023 | app.init_profile_dir() | ||
app.init_config_files() | ||||
app.load_config_file(suppress_errors=False) | ||||
Thomas Kluyver
|
r3452 | finally: | ||
if old_ipdir1: | ||||
os.environ["IPYTHONDIR"] = old_ipdir1 | ||||
if old_ipdir2: | ||||
os.environ["IPYTHONDIR"] = old_ipdir2 | ||||
Min RK
|
r22585 | |||
def test_cli_priority(): | ||||
with TemporaryDirectory() as td: | ||||
class TestApp(BaseIPythonApplication): | ||||
test = Unicode().tag(config=True) | ||||
# Create the config file, so it tries to load it. | ||||
with open(os.path.join(td, 'ipython_config.py'), "w") as f: | ||||
f.write("c.TestApp.test = 'config file'") | ||||
app = TestApp() | ||||
app.initialize(['--profile-dir', td]) | ||||
nt.assert_equal(app.test, 'config file') | ||||
app = TestApp() | ||||
app.initialize(['--profile-dir', td, '--TestApp.test=cli']) | ||||
nt.assert_equal(app.test, 'cli') | ||||