- 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.
This commit is contained in:
parent
2b860db35c
commit
46c58c17f1
|
@ -210,8 +210,9 @@ def run_setup (script_name, script_args=None, stop_after="run"):
|
||||||
_setup_stop_after = stop_after
|
_setup_stop_after = stop_after
|
||||||
|
|
||||||
save_argv = sys.argv
|
save_argv = sys.argv
|
||||||
g = {}
|
g = {'__file__': script_name}
|
||||||
l = {}
|
l = {}
|
||||||
|
os.chdir(os.path.dirname(script_name) or os.curdir)
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
sys.argv[0] = script_name
|
sys.argv[0] = script_name
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
"""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")
|
|
@ -18,6 +18,10 @@ Extensions Modules
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
Tests
|
Tests
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue