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

test_build_scripts.py (2862B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_build_scripts.py
      2 import os
      3 import unittest
      4 from distutils.command.build_scripts import build_scripts
      5 from distutils.core import Distribution
      6 import sysconfig
      7 from distutils.tests import support
      8 
      9 class BuildScriptsTestCase(support.TempdirManager, support.LoggingSilencer, unittest.TestCase):
     10 
     11     def test_default_settings(self):
     12         cmd = self.get_build_scripts_cmd('/foo/bar', [])
     13         self.assertTrue(not cmd.force)
     14         self.assertTrue(cmd.build_dir is None)
     15         cmd.finalize_options()
     16         self.assertTrue(cmd.force)
     17         self.assertEqual(cmd.build_dir, '/foo/bar')
     18 
     19     def test_build(self):
     20         source = self.mkdtemp()
     21         target = self.mkdtemp()
     22         expected = self.write_sample_scripts(source)
     23         cmd = self.get_build_scripts_cmd(target, [ os.path.join(source, fn) for fn in expected ])
     24         cmd.finalize_options()
     25         cmd.run()
     26         built = os.listdir(target)
     27         for name in expected:
     28             self.assertTrue(name in built)
     29 
     30     def get_build_scripts_cmd(self, target, scripts):
     31         import sys
     32         dist = Distribution()
     33         dist.scripts = scripts
     34         dist.command_obj['build'] = support.DummyCommand(build_scripts=target, force=1, executable=sys.executable)
     35         return build_scripts(dist)
     36 
     37     def write_sample_scripts(self, dir):
     38         expected = []
     39         expected.append('script1.py')
     40         self.write_script(dir, 'script1.py', '#! /usr/bin/env python2.3\n# bogus script w/ Python sh-bang\npass\n')
     41         expected.append('script2.py')
     42         self.write_script(dir, 'script2.py', '#!/usr/bin/python\n# bogus script w/ Python sh-bang\npass\n')
     43         expected.append('shell.sh')
     44         self.write_script(dir, 'shell.sh', '#!/bin/sh\n# bogus shell script w/ sh-bang\nexit 0\n')
     45         return expected
     46 
     47     def write_script(self, dir, name, text):
     48         f = open(os.path.join(dir, name), 'w')
     49         try:
     50             f.write(text)
     51         finally:
     52             f.close()
     53 
     54     def test_version_int(self):
     55         source = self.mkdtemp()
     56         target = self.mkdtemp()
     57         expected = self.write_sample_scripts(source)
     58         cmd = self.get_build_scripts_cmd(target, [ os.path.join(source, fn) for fn in expected ])
     59         cmd.finalize_options()
     60         old = sysconfig.get_config_vars().get('VERSION')
     61         sysconfig._CONFIG_VARS['VERSION'] = 4
     62         try:
     63             cmd.run()
     64         finally:
     65             if old is not None:
     66                 sysconfig._CONFIG_VARS['VERSION'] = old
     67 
     68         built = os.listdir(target)
     69         for name in expected:
     70             self.assertTrue(name in built)
     71 
     72 
     73 def test_suite():
     74     return unittest.makeSuite(BuildScriptsTestCase)
     75 
     76 
     77 if __name__ == '__main__':
     78     unittest.main(defaultTest='test_suite')