NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

test_core.py (2634B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_core.py
      2 import StringIO
      3 import distutils.core
      4 import os
      5 import shutil
      6 import sys
      7 import test.test_support
      8 from test.test_support import captured_stdout
      9 import unittest
     10 from distutils.tests import support
     11 setup_using___file__ = '\n__file__\n\nfrom distutils.core import setup\nsetup()\n'
     12 setup_prints_cwd = '\nimport os\nprint os.getcwd()\n\nfrom distutils.core import setup\nsetup()\n'
     13 
     14 class CoreTestCase(support.EnvironGuard, unittest.TestCase):
     15 
     16     def setUp(self):
     17         super(CoreTestCase, self).setUp()
     18         self.old_stdout = sys.stdout
     19         self.cleanup_testfn()
     20         self.old_argv = (sys.argv, sys.argv[:])
     21 
     22     def tearDown(self):
     23         sys.stdout = self.old_stdout
     24         self.cleanup_testfn()
     25         sys.argv = self.old_argv[0]
     26         sys.argv[:] = self.old_argv[1]
     27         super(CoreTestCase, self).tearDown()
     28 
     29     def cleanup_testfn(self):
     30         path = test.test_support.TESTFN
     31         if os.path.isfile(path):
     32             os.remove(path)
     33         elif os.path.isdir(path):
     34             shutil.rmtree(path)
     35 
     36     def write_setup(self, text, path = test.test_support.TESTFN):
     37         f = open(path, 'w')
     38         try:
     39             f.write(text)
     40         finally:
     41             f.close()
     42 
     43         return path
     44 
     45     def test_run_setup_provides_file(self):
     46         distutils.core.run_setup(self.write_setup(setup_using___file__))
     47 
     48     def test_run_setup_uses_current_dir(self):
     49         sys.stdout = StringIO.StringIO()
     50         cwd = os.getcwd()
     51         os.mkdir(test.test_support.TESTFN)
     52         setup_py = os.path.join(test.test_support.TESTFN, 'setup.py')
     53         distutils.core.run_setup(self.write_setup(setup_prints_cwd, path=setup_py))
     54         output = sys.stdout.getvalue()
     55         if output.endswith('\n'):
     56             output = output[:-1]
     57         self.assertEqual(cwd, output)
     58 
     59     def test_debug_mode(self):
     60         sys.argv = ['setup.py', '--name']
     61         with captured_stdout() as stdout:
     62             distutils.core.setup(name='bar')
     63         stdout.seek(0)
     64         self.assertEqual(stdout.read(), 'bar\n')
     65         distutils.core.DEBUG = True
     66         try:
     67             with captured_stdout() as stdout:
     68                 distutils.core.setup(name='bar')
     69         finally:
     70             distutils.core.DEBUG = False
     71 
     72         stdout.seek(0)
     73         wanted = 'options (after parsing config files):\n'
     74         self.assertEqual(stdout.readlines()[0], wanted)
     75 
     76 
     77 def test_suite():
     78     return unittest.makeSuite(CoreTestCase)
     79 
     80 
     81 if __name__ == '__main__':
     82     unittest.main(defaultTest='test_suite')