test_shellapp.py
56 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
Bradley M. Froehle
|
r8531 | # -*- coding: utf-8 -*- | ||
"""Tests for shellapp module. | ||||
Authors | ||||
------- | ||||
* Bradley Froehle | ||||
""" | ||||
#----------------------------------------------------------------------------- | ||||
# Copyright (C) 2012 The IPython Development Team | ||||
# | ||||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING, distributed as part of this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
import unittest | ||||
from IPython.testing import decorators as dec | ||||
from IPython.testing import tools as tt | ||||
Thomas Ballinger
|
r18526 | |||
Bradley M. Froehle
|
r8531 | |||
Matthias Bussonnier
|
r24395 | class TestFileToRun(tt.TempFileMixin, unittest.TestCase): | ||
Bradley M. Froehle
|
r8531 | """Test the behavior of the file_to_run parameter.""" | ||
def test_py_script_file_attribute(self): | ||||
"""Test that `__file__` is set when running `ipython file.py`""" | ||||
src = "print(__file__)\n" | ||||
self.mktmp(src) | ||||
Terry Davis
|
r25524 | err = None | ||
Bradley M. Froehle
|
r8531 | tt.ipexec_validate(self.fname, self.fname, err) | ||
def test_ipy_script_file_attribute(self): | ||||
"""Test that `__file__` is set when running `ipython file.ipy`""" | ||||
src = "print(__file__)\n" | ||||
self.mktmp(src, ext='.ipy') | ||||
Terry Davis
|
r25524 | err = None | ||
Bradley M. Froehle
|
r8531 | tt.ipexec_validate(self.fname, self.fname, err) | ||
Thomas Kluyver
|
r18682 | # The commands option to ipexec_validate doesn't work on Windows, and it | ||
# doesn't seem worth fixing | ||||
@dec.skip_win32 | ||||
Thomas Ballinger
|
r18526 | def test_py_script_file_attribute_interactively(self): | ||
"""Test that `__file__` is not set after `ipython -i file.py`""" | ||||
src = "True\n" | ||||
self.mktmp(src) | ||||
Nikita Kniazev
|
r27081 | out, err = tt.ipexec( | ||
self.fname, | ||||
options=["-i"], | ||||
commands=['"__file__" in globals()', "print(123)", "exit()"], | ||||
) | ||||
Nikita Kniazev
|
r27080 | assert "False" in out, f"Subprocess stderr:\n{err}\n-----" | ||