Commit fb68e5c8 authored by Fred Drake's avatar Fred Drake

- Issue #2385: distutils.core.run_script() makes __file__ available, so the

  controlled environment will more closely mirror the typical script
  environment.  This supports setup.py scripts that refer to data files.
parent b2c84945
......@@ -210,8 +210,9 @@ def run_setup (script_name, script_args=None, stop_after="run"):
_setup_stop_after = stop_after
save_argv = sys.argv
g = {}
g = {'__file__': script_name}
l = {}
os.chdir(os.path.dirname(script_name) or os.curdir)
try:
try:
sys.argv[0] = script_name
......
"""Tests for distutils.core."""
import StringIO
import distutils.core
import os
import test.test_support
import unittest
# setup script that uses __file__
setup_using___file__ = """\
__file__
from distutils.core import setup
setup()
"""
class CoreTestCase(unittest.TestCase):
def tearDown(self):
os.remove(test.test_support.TESTFN)
def write_setup(self, text):
return fn
def test_run_setup_provides_file(self):
# Make sure the script can use __file__; if that's missing, the test
# setup.py script will raise NameError.
fn = test.test_support.TESTFN
open(fn, "w").write(setup_using___file__)
distutils.core.run_setup(fn)
def test_suite():
return unittest.makeSuite(CoreTestCase)
if __name__ == "__main__":
unittest.main(defaultTest="test_suite")
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment