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')