test_bdist_rpm.py (3425B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_bdist_rpm.py 2 import unittest 3 import sys 4 import os 5 import tempfile 6 import shutil 7 from test.test_support import run_unittest 8 from distutils.core import Distribution 9 from distutils.command.bdist_rpm import bdist_rpm 10 from distutils.tests import support 11 from distutils.spawn import find_executable 12 from distutils import spawn 13 from distutils.errors import DistutilsExecError 14 SETUP_PY = "from distutils.core import setup\nimport foo\n\nsetup(name='foo', version='0.1', py_modules=['foo'],\n url='xxx', author='xxx', author_email='xxx')\n\n" 15 16 class BuildRpmTestCase(support.TempdirManager, support.LoggingSilencer, unittest.TestCase): 17 18 def setUp(self): 19 super(BuildRpmTestCase, self).setUp() 20 self.old_location = os.getcwd() 21 self.old_sys_argv = (sys.argv, sys.argv[:]) 22 23 def tearDown(self): 24 os.chdir(self.old_location) 25 sys.argv = self.old_sys_argv[0] 26 sys.argv[:] = self.old_sys_argv[1] 27 super(BuildRpmTestCase, self).tearDown() 28 29 def test_quiet(self): 30 if sys.platform != 'linux2': 31 return 32 if find_executable('rpm') is None or find_executable('rpmbuild') is None: 33 return 34 tmp_dir = self.mkdtemp() 35 pkg_dir = os.path.join(tmp_dir, 'foo') 36 os.mkdir(pkg_dir) 37 self.write_file((pkg_dir, 'setup.py'), SETUP_PY) 38 self.write_file((pkg_dir, 'foo.py'), '#') 39 self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py') 40 self.write_file((pkg_dir, 'README'), '') 41 dist = Distribution({'name': 'foo', 42 'version': '0.1', 43 'py_modules': ['foo'], 44 'url': 'xxx', 45 'author': 'xxx', 46 'author_email': 'xxx'}) 47 dist.script_name = 'setup.py' 48 os.chdir(pkg_dir) 49 sys.argv = ['setup.py'] 50 cmd = bdist_rpm(dist) 51 cmd.fix_python = True 52 cmd.quiet = 1 53 cmd.ensure_finalized() 54 cmd.run() 55 dist_created = os.listdir(os.path.join(pkg_dir, 'dist')) 56 self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created) 57 58 def test_no_optimize_flag(self): 59 if sys.platform != 'linux2': 60 return 61 if find_executable('rpm') is None or find_executable('rpmbuild') is None: 62 return 63 tmp_dir = self.mkdtemp() 64 pkg_dir = os.path.join(tmp_dir, 'foo') 65 os.mkdir(pkg_dir) 66 self.write_file((pkg_dir, 'setup.py'), SETUP_PY) 67 self.write_file((pkg_dir, 'foo.py'), '#') 68 self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py') 69 self.write_file((pkg_dir, 'README'), '') 70 dist = Distribution({'name': 'foo', 71 'version': '0.1', 72 'py_modules': ['foo'], 73 'url': 'xxx', 74 'author': 'xxx', 75 'author_email': 'xxx'}) 76 dist.script_name = 'setup.py' 77 os.chdir(pkg_dir) 78 sys.argv = ['setup.py'] 79 cmd = bdist_rpm(dist) 80 cmd.fix_python = True 81 cmd.quiet = 1 82 cmd.ensure_finalized() 83 cmd.run() 84 dist_created = os.listdir(os.path.join(pkg_dir, 'dist')) 85 self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created) 86 os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm')) 87 88 89 def test_suite(): 90 return unittest.makeSuite(BuildRpmTestCase) 91 92 93 if __name__ == '__main__': 94 run_unittest(test_suite())