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

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