mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	Cleanups in distutils tests.
- Actually check the contents of the file created by bdist_dumb. - Don’t use “RECORD” as filename for non-PEP 376 record file - Don’t start method name with “_test”, it smells like a disabled test method instead of an helper method - Fix some idioms (assertIn, addCleanup)
This commit is contained in:
		
							parent
							
								
									91d5193b3a
								
							
						
					
					
						commit
						af2ffd75cf
					
				
					 3 changed files with 32 additions and 25 deletions
				
			
		| 
						 | 
					@ -1,8 +1,10 @@
 | 
				
			||||||
"""Tests for distutils.command.bdist_dumb."""
 | 
					"""Tests for distutils.command.bdist_dumb."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import unittest
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					import imp
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import zipfile
 | 
				
			||||||
 | 
					import unittest
 | 
				
			||||||
from test.support import run_unittest
 | 
					from test.support import run_unittest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from distutils.core import Distribution
 | 
					from distutils.core import Distribution
 | 
				
			||||||
| 
						 | 
					@ -72,15 +74,24 @@ class BuildDumbTestCase(support.TempdirManager,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # see what we have
 | 
					        # see what we have
 | 
				
			||||||
        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
 | 
					        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
 | 
				
			||||||
        base = "%s.%s" % (dist.get_fullname(), cmd.plat_name)
 | 
					        base = "%s.%s.zip" % (dist.get_fullname(), cmd.plat_name)
 | 
				
			||||||
        if os.name == 'os2':
 | 
					        if os.name == 'os2':
 | 
				
			||||||
            base = base.replace(':', '-')
 | 
					            base = base.replace(':', '-')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        wanted = ['%s.zip' % base]
 | 
					        self.assertEqual(dist_created, [base])
 | 
				
			||||||
        self.assertEqual(dist_created, wanted)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # now let's check what we have in the zip file
 | 
					        # now let's check what we have in the zip file
 | 
				
			||||||
        # XXX to be done
 | 
					        fp = zipfile.ZipFile(os.path.join('dist', base))
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            contents = fp.namelist()
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            fp.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        contents = sorted(os.path.basename(fn) for fn in contents)
 | 
				
			||||||
 | 
					        wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2],
 | 
				
			||||||
 | 
					                  'foo.%s.pyc' % imp.get_tag(),
 | 
				
			||||||
 | 
					                  'foo.py']
 | 
				
			||||||
 | 
					        self.assertEqual(contents, sorted(wanted))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_suite():
 | 
					def test_suite():
 | 
				
			||||||
    return unittest.makeSuite(BuildDumbTestCase)
 | 
					    return unittest.makeSuite(BuildDumbTestCase)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -87,19 +87,17 @@ class InstallTestCase(support.TempdirManager,
 | 
				
			||||||
        self.old_expand = os.path.expanduser
 | 
					        self.old_expand = os.path.expanduser
 | 
				
			||||||
        os.path.expanduser = _expanduser
 | 
					        os.path.expanduser = _expanduser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        def cleanup():
 | 
				
			||||||
            # this is the actual test
 | 
					 | 
				
			||||||
            self._test_user_site()
 | 
					 | 
				
			||||||
        finally:
 | 
					 | 
				
			||||||
            site.USER_BASE = self.old_user_base
 | 
					            site.USER_BASE = self.old_user_base
 | 
				
			||||||
            site.USER_SITE = self.old_user_site
 | 
					            site.USER_SITE = self.old_user_site
 | 
				
			||||||
            install_module.USER_BASE = self.old_user_base
 | 
					            install_module.USER_BASE = self.old_user_base
 | 
				
			||||||
            install_module.USER_SITE = self.old_user_site
 | 
					            install_module.USER_SITE = self.old_user_site
 | 
				
			||||||
            os.path.expanduser = self.old_expand
 | 
					            os.path.expanduser = self.old_expand
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _test_user_site(self):
 | 
					        self.addCleanup(cleanup)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for key in ('nt_user', 'unix_user', 'os2_home'):
 | 
					        for key in ('nt_user', 'unix_user', 'os2_home'):
 | 
				
			||||||
            self.assertTrue(key in INSTALL_SCHEMES)
 | 
					            self.assertIn(key, INSTALL_SCHEMES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        dist = Distribution({'name': 'xx'})
 | 
					        dist = Distribution({'name': 'xx'})
 | 
				
			||||||
        cmd = install(dist)
 | 
					        cmd = install(dist)
 | 
				
			||||||
| 
						 | 
					@ -107,14 +105,14 @@ class InstallTestCase(support.TempdirManager,
 | 
				
			||||||
        # making sure the user option is there
 | 
					        # making sure the user option is there
 | 
				
			||||||
        options = [name for name, short, lable in
 | 
					        options = [name for name, short, lable in
 | 
				
			||||||
                   cmd.user_options]
 | 
					                   cmd.user_options]
 | 
				
			||||||
        self.assertTrue('user' in options)
 | 
					        self.assertIn('user', options)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # setting a value
 | 
					        # setting a value
 | 
				
			||||||
        cmd.user = 1
 | 
					        cmd.user = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # user base and site shouldn't be created yet
 | 
					        # user base and site shouldn't be created yet
 | 
				
			||||||
        self.assertTrue(not os.path.exists(self.user_base))
 | 
					        self.assertFalse(os.path.exists(self.user_base))
 | 
				
			||||||
        self.assertTrue(not os.path.exists(self.user_site))
 | 
					        self.assertFalse(os.path.exists(self.user_site))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # let's run finalize
 | 
					        # let's run finalize
 | 
				
			||||||
        cmd.ensure_finalized()
 | 
					        cmd.ensure_finalized()
 | 
				
			||||||
| 
						 | 
					@ -123,8 +121,8 @@ class InstallTestCase(support.TempdirManager,
 | 
				
			||||||
        self.assertTrue(os.path.exists(self.user_base))
 | 
					        self.assertTrue(os.path.exists(self.user_base))
 | 
				
			||||||
        self.assertTrue(os.path.exists(self.user_site))
 | 
					        self.assertTrue(os.path.exists(self.user_site))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.assertTrue('userbase' in cmd.config_vars)
 | 
					        self.assertIn('userbase', cmd.config_vars)
 | 
				
			||||||
        self.assertTrue('usersite' in cmd.config_vars)
 | 
					        self.assertIn('usersite', cmd.config_vars)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_handle_extra_path(self):
 | 
					    def test_handle_extra_path(self):
 | 
				
			||||||
        dist = Distribution({'name': 'xx', 'extra_path': 'path,dirs'})
 | 
					        dist = Distribution({'name': 'xx', 'extra_path': 'path,dirs'})
 | 
				
			||||||
| 
						 | 
					@ -178,14 +176,13 @@ class InstallTestCase(support.TempdirManager,
 | 
				
			||||||
    def test_record(self):
 | 
					    def test_record(self):
 | 
				
			||||||
        install_dir = self.mkdtemp()
 | 
					        install_dir = self.mkdtemp()
 | 
				
			||||||
        project_dir, dist = self.create_dist(scripts=['hello'])
 | 
					        project_dir, dist = self.create_dist(scripts=['hello'])
 | 
				
			||||||
        self.addCleanup(os.chdir, os.getcwd())
 | 
					 | 
				
			||||||
        os.chdir(project_dir)
 | 
					        os.chdir(project_dir)
 | 
				
			||||||
        self.write_file('hello', "print('o hai')")
 | 
					        self.write_file('hello', "print('o hai')")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cmd = install(dist)
 | 
					        cmd = install(dist)
 | 
				
			||||||
        dist.command_obj['install'] = cmd
 | 
					        dist.command_obj['install'] = cmd
 | 
				
			||||||
        cmd.root = install_dir
 | 
					        cmd.root = install_dir
 | 
				
			||||||
        cmd.record = os.path.join(project_dir, 'RECORD')
 | 
					        cmd.record = os.path.join(project_dir, 'filelist')
 | 
				
			||||||
        cmd.ensure_finalized()
 | 
					        cmd.ensure_finalized()
 | 
				
			||||||
        cmd.run()
 | 
					        cmd.run()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -204,7 +201,6 @@ class InstallTestCase(support.TempdirManager,
 | 
				
			||||||
        install_dir = self.mkdtemp()
 | 
					        install_dir = self.mkdtemp()
 | 
				
			||||||
        project_dir, dist = self.create_dist(ext_modules=[
 | 
					        project_dir, dist = self.create_dist(ext_modules=[
 | 
				
			||||||
            Extension('xx', ['xxmodule.c'])])
 | 
					            Extension('xx', ['xxmodule.c'])])
 | 
				
			||||||
        self.addCleanup(os.chdir, os.getcwd())
 | 
					 | 
				
			||||||
        os.chdir(project_dir)
 | 
					        os.chdir(project_dir)
 | 
				
			||||||
        support.copy_xxmodule_c(project_dir)
 | 
					        support.copy_xxmodule_c(project_dir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -216,7 +212,7 @@ class InstallTestCase(support.TempdirManager,
 | 
				
			||||||
        dist.command_obj['install'] = cmd
 | 
					        dist.command_obj['install'] = cmd
 | 
				
			||||||
        dist.command_obj['build_ext'] = buildextcmd
 | 
					        dist.command_obj['build_ext'] = buildextcmd
 | 
				
			||||||
        cmd.root = install_dir
 | 
					        cmd.root = install_dir
 | 
				
			||||||
        cmd.record = os.path.join(project_dir, 'RECORD')
 | 
					        cmd.record = os.path.join(project_dir, 'filelist')
 | 
				
			||||||
        cmd.ensure_finalized()
 | 
					        cmd.ensure_finalized()
 | 
				
			||||||
        cmd.run()
 | 
					        cmd.run()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -288,7 +288,7 @@ class SDistTestCase(PyPIRCCommandTestCase):
 | 
				
			||||||
    # the following tests make sure there is a nice error message instead
 | 
					    # the following tests make sure there is a nice error message instead
 | 
				
			||||||
    # of a traceback when parsing an invalid manifest template
 | 
					    # of a traceback when parsing an invalid manifest template
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _test_template(self, content):
 | 
					    def _check_template(self, content):
 | 
				
			||||||
        dist, cmd = self.get_cmd()
 | 
					        dist, cmd = self.get_cmd()
 | 
				
			||||||
        os.chdir(self.tmp_dir)
 | 
					        os.chdir(self.tmp_dir)
 | 
				
			||||||
        self.write_file('MANIFEST.in', content)
 | 
					        self.write_file('MANIFEST.in', content)
 | 
				
			||||||
| 
						 | 
					@ -299,17 +299,17 @@ class SDistTestCase(PyPIRCCommandTestCase):
 | 
				
			||||||
        self.assertEqual(len(warnings), 1)
 | 
					        self.assertEqual(len(warnings), 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_invalid_template_unknown_command(self):
 | 
					    def test_invalid_template_unknown_command(self):
 | 
				
			||||||
        self._test_template('taunt knights *')
 | 
					        self._check_template('taunt knights *')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_invalid_template_wrong_arguments(self):
 | 
					    def test_invalid_template_wrong_arguments(self):
 | 
				
			||||||
        # this manifest command takes one argument
 | 
					        # this manifest command takes one argument
 | 
				
			||||||
        self._test_template('prune')
 | 
					        self._check_template('prune')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @unittest.skipIf(os.name != 'nt', 'test relevant for Windows only')
 | 
					    @unittest.skipIf(os.name != 'nt', 'test relevant for Windows only')
 | 
				
			||||||
    def test_invalid_template_wrong_path(self):
 | 
					    def test_invalid_template_wrong_path(self):
 | 
				
			||||||
        # on Windows, trailing slashes are not allowed
 | 
					        # on Windows, trailing slashes are not allowed
 | 
				
			||||||
        # this used to crash instead of raising a warning: #8286
 | 
					        # this used to crash instead of raising a warning: #8286
 | 
				
			||||||
        self._test_template('include examples/')
 | 
					        self._check_template('include examples/')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @unittest.skipUnless(ZLIB_SUPPORT, 'Need zlib support to run')
 | 
					    @unittest.skipUnless(ZLIB_SUPPORT, 'Need zlib support to run')
 | 
				
			||||||
    def test_get_file_list(self):
 | 
					    def test_get_file_list(self):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue