Index: Lib/distutils/tests/test_core.py =================================================================== --- Lib/distutils/tests/test_core.py (revision 0) +++ Lib/distutils/tests/test_core.py (revision 0) @@ -0,0 +1,39 @@ +"""Tests for distutils.core.""" +import os +import unittest + +from distutils.core import run_setup + +# setup file that uses __file__ and __main___ +setup_py_content = """\ +import os +from distutils.core import setup + +description = os.path.dirname(__file__) + +setup() + +if __name__ == '__main__': + print 'runned' +""" + +setup_py = os.path.join(os.path.dirname(__file__), 'setup.py') + +class coreTestCase(unittest.TestCase): + + def setUp(self): + open(setup_py, 'w').write(setup_py_content) + + def tearDown(self): + os.remove(setup_py) + + def test_run_setup(self): + # makes sure the script can use __file__ and __main__ + run_setup(setup_py) + +def test_suite(): + return unittest.makeSuite(coreTestCase) + +if __name__ == "__main__": + unittest.main(defaultTest="test_suite") + Property changes on: Lib/distutils/tests/test_core.py ___________________________________________________________________ Name: svn:keywords + Id Name: svn:eol-style + native Index: Lib/distutils/core.py =================================================================== --- Lib/distutils/core.py (revision 61746) +++ Lib/distutils/core.py (working copy) @@ -210,8 +210,10 @@ _setup_stop_after = stop_after save_argv = sys.argv - g = {} + save_dir = os.curdir + g = {'__file__': script_name, '__name__': '__main__'} l = {} + os.chdir(os.path.dirname(script_name)) try: try: sys.argv[0] = script_name @@ -219,6 +221,7 @@ sys.argv[1:] = script_args execfile(script_name, g, l) finally: + os.chdir(save_dir) sys.argv = save_argv _setup_stop_after = None except SystemExit: