Format: text/x-python
⬇ Download File (1.8 KB)
   1  # -*- coding: utf-8 -*-
   2  """Tests for shellapp module.
   3  
   4  Authors
   5  -------
   6  * Bradley Froehle
   7  """
   8  #-----------------------------------------------------------------------------
   9  #  Copyright (C) 2012  The IPython Development Team
  10  #
  11  #  Distributed under the terms of the BSD License.  The full license is in
  12  #  the file COPYING, distributed as part of this software.
  13  #-----------------------------------------------------------------------------
  14  
  15  #-----------------------------------------------------------------------------
  16  # Imports
  17  #-----------------------------------------------------------------------------
  18  import unittest
  19  
  20  from IPython.testing import decorators as dec
  21  from IPython.testing import tools as tt
  22  
  23  
  24  class TestFileToRun(tt.TempFileMixin, unittest.TestCase):
  25      """Test the behavior of the file_to_run parameter."""
  26  
  27      def test_py_script_file_attribute(self):
  28          """Test that `__file__` is set when running `ipython file.py`"""
  29          src = "print(__file__)\n"
  30          self.mktmp(src)
  31  
  32          err = None
  33          tt.ipexec_validate(self.fname, self.fname, err)
  34  
  35      def test_ipy_script_file_attribute(self):
  36          """Test that `__file__` is set when running `ipython file.ipy`"""
  37          src = "print(__file__)\n"
  38          self.mktmp(src, ext='.ipy')
  39  
  40          err = None
  41          tt.ipexec_validate(self.fname, self.fname, err)
  42  
  43      # The commands option to ipexec_validate doesn't work on Windows, and it
  44      # doesn't seem worth fixing
  45      @dec.skip_win32
  46      def test_py_script_file_attribute_interactively(self):
  47          """Test that `__file__` is not set after `ipython -i file.py`"""
  48          src = "True\n"
  49          self.mktmp(src)
  50  
  51          out, err = tt.ipexec(
  52              self.fname,
  53              options=["-i"],
  54              commands=['"__file__" in globals()', "print(123)", "exit()"],
  55          )
  56          assert "False" in out, f"Subprocess stderr:\n{err}\n-----"
  57