mirror of https://github.com/python/cpython
pep8-fied distutils.command.sdist + more tests
This commit is contained in:
parent
064a768101
commit
8953913cf5
|
@ -30,7 +30,7 @@ def show_formats():
|
|||
FancyGetopt(formats).print_help(
|
||||
"List of available source distribution formats:")
|
||||
|
||||
class sdist (Command):
|
||||
class sdist(Command):
|
||||
|
||||
description = "create a source distribution (tarball, zip file, etc.)"
|
||||
|
||||
|
@ -77,10 +77,10 @@ class sdist (Command):
|
|||
negative_opt = {'no-defaults': 'use-defaults',
|
||||
'no-prune': 'prune' }
|
||||
|
||||
default_format = { 'posix': 'gztar',
|
||||
'nt': 'zip' }
|
||||
default_format = {'posix': 'gztar',
|
||||
'nt': 'zip' }
|
||||
|
||||
def initialize_options (self):
|
||||
def initialize_options(self):
|
||||
# 'template' and 'manifest' are, respectively, the names of
|
||||
# the manifest template and manifest file.
|
||||
self.template = None
|
||||
|
@ -100,8 +100,7 @@ class sdist (Command):
|
|||
|
||||
self.archive_files = None
|
||||
|
||||
|
||||
def finalize_options (self):
|
||||
def finalize_options(self):
|
||||
if self.manifest is None:
|
||||
self.manifest = "MANIFEST"
|
||||
if self.template is None:
|
||||
|
@ -124,9 +123,7 @@ class sdist (Command):
|
|||
if self.dist_dir is None:
|
||||
self.dist_dir = "dist"
|
||||
|
||||
|
||||
def run (self):
|
||||
|
||||
def run(self):
|
||||
# 'filelist' contains the list of files that will make up the
|
||||
# manifest
|
||||
self.filelist = FileList()
|
||||
|
@ -148,8 +145,7 @@ class sdist (Command):
|
|||
# or zipfile, or whatever.
|
||||
self.make_distribution()
|
||||
|
||||
|
||||
def check_metadata (self):
|
||||
def check_metadata(self):
|
||||
"""Ensure that all required elements of meta-data (name, version,
|
||||
URL, (author and author_email) or (maintainer and
|
||||
maintainer_email)) are supplied by the Distribution object; warn if
|
||||
|
@ -179,17 +175,13 @@ class sdist (Command):
|
|||
"or (maintainer and maintainer_email) " +
|
||||
"must be supplied")
|
||||
|
||||
# check_metadata ()
|
||||
|
||||
|
||||
def get_file_list (self):
|
||||
def get_file_list(self):
|
||||
"""Figure out the list of files to include in the source
|
||||
distribution, and put it in 'self.filelist'. This might involve
|
||||
reading the manifest template (and writing the manifest), or just
|
||||
reading the manifest, or just using the default file set -- it all
|
||||
depends on the user's options and the state of the filesystem.
|
||||
"""
|
||||
|
||||
# If we have a manifest template, see if it's newer than the
|
||||
# manifest; if so, we'll regenerate the manifest.
|
||||
template_exists = os.path.isfile(self.template)
|
||||
|
@ -249,10 +241,7 @@ class sdist (Command):
|
|||
else:
|
||||
self.read_manifest()
|
||||
|
||||
# get_file_list ()
|
||||
|
||||
|
||||
def add_defaults (self):
|
||||
def add_defaults(self):
|
||||
"""Add all the default files to self.filelist:
|
||||
- README or README.txt
|
||||
- setup.py
|
||||
|
@ -334,10 +323,7 @@ class sdist (Command):
|
|||
build_scripts = self.get_finalized_command('build_scripts')
|
||||
self.filelist.extend(build_scripts.get_source_files())
|
||||
|
||||
# add_defaults ()
|
||||
|
||||
|
||||
def read_template (self):
|
||||
def read_template(self):
|
||||
"""Read and parse manifest template file named by self.template.
|
||||
|
||||
(usually "MANIFEST.in") The parsing and processing is done by
|
||||
|
@ -364,10 +350,7 @@ class sdist (Command):
|
|||
template.current_line,
|
||||
msg))
|
||||
|
||||
# read_template ()
|
||||
|
||||
|
||||
def prune_file_list (self):
|
||||
def prune_file_list(self):
|
||||
"""Prune off branches that might slip into the file list as created
|
||||
by 'read_template()', but really don't belong there:
|
||||
* the build tree (typically "build")
|
||||
|
@ -393,7 +376,7 @@ class sdist (Command):
|
|||
vcs_ptrn = r'(^|%s)(%s)(%s).*' % (seps, '|'.join(vcs_dirs), seps)
|
||||
self.filelist.exclude_pattern(vcs_ptrn, is_regex=1)
|
||||
|
||||
def write_manifest (self):
|
||||
def write_manifest(self):
|
||||
"""Write the file list in 'self.filelist' (presumably as filled in
|
||||
by 'add_defaults()' and 'read_template()') to the manifest file
|
||||
named by 'self.manifest'.
|
||||
|
@ -402,10 +385,7 @@ class sdist (Command):
|
|||
(self.manifest, self.filelist.files),
|
||||
"writing manifest file '%s'" % self.manifest)
|
||||
|
||||
# write_manifest ()
|
||||
|
||||
|
||||
def read_manifest (self):
|
||||
def read_manifest(self):
|
||||
"""Read the manifest file (named by 'self.manifest') and use it to
|
||||
fill in 'self.filelist', the list of files to include in the source
|
||||
distribution.
|
||||
|
@ -421,10 +401,7 @@ class sdist (Command):
|
|||
self.filelist.append(line)
|
||||
manifest.close()
|
||||
|
||||
# read_manifest ()
|
||||
|
||||
|
||||
def make_release_tree (self, base_dir, files):
|
||||
def make_release_tree(self, base_dir, files):
|
||||
"""Create the directory tree that will become the source
|
||||
distribution archive. All directories implied by the filenames in
|
||||
'files' are created under 'base_dir', and then we hard link or copy
|
||||
|
@ -466,9 +443,7 @@ class sdist (Command):
|
|||
|
||||
self.distribution.metadata.write_pkg_info(base_dir)
|
||||
|
||||
# make_release_tree ()
|
||||
|
||||
def make_distribution (self):
|
||||
def make_distribution(self):
|
||||
"""Create the source distribution(s). First, we create the release
|
||||
tree with 'make_release_tree()'; then, we create all required
|
||||
archive files (according to 'self.formats') from the release tree.
|
||||
|
@ -497,10 +472,8 @@ class sdist (Command):
|
|||
if not self.keep_temp:
|
||||
dir_util.remove_tree(base_dir, dry_run=self.dry_run)
|
||||
|
||||
def get_archive_files (self):
|
||||
def get_archive_files(self):
|
||||
"""Return the list of archive files created when the command
|
||||
was run, or None if the command hasn't run yet.
|
||||
"""
|
||||
return self.archive_files
|
||||
|
||||
# class sdist
|
||||
|
|
|
@ -13,7 +13,7 @@ from distutils.command.sdist import sdist
|
|||
from distutils.command.sdist import show_formats
|
||||
from distutils.core import Distribution
|
||||
from distutils.tests.test_config import PyPIRCCommandTestCase
|
||||
from distutils.errors import DistutilsExecError
|
||||
from distutils.errors import DistutilsExecError, DistutilsOptionError
|
||||
from distutils.spawn import find_executable
|
||||
from distutils.tests import support
|
||||
from distutils.archive_util import ARCHIVE_FORMATS
|
||||
|
@ -224,6 +224,28 @@ class sdistTestCase(PyPIRCCommandTestCase):
|
|||
if line.strip().startswith('--formats=')]
|
||||
self.assertEquals(len(output), num_formats)
|
||||
|
||||
def test_finalize_options(self):
|
||||
|
||||
dist, cmd = self.get_cmd()
|
||||
cmd.finalize_options()
|
||||
|
||||
# default options set by finalize
|
||||
self.assertEquals(cmd.manifest, 'MANIFEST')
|
||||
self.assertEquals(cmd.template, 'MANIFEST.in')
|
||||
self.assertEquals(cmd.dist_dir, 'dist')
|
||||
|
||||
# formats has to be a string splitable on (' ', ',') or
|
||||
# a stringlist
|
||||
cmd.formats = 1
|
||||
self.assertRaises(DistutilsOptionError, cmd.finalize_options)
|
||||
cmd.formats = ['zip']
|
||||
cmd.finalize_options()
|
||||
|
||||
# formats has to be known
|
||||
cmd.formats = 'supazipa'
|
||||
self.assertRaises(DistutilsOptionError, cmd.finalize_options)
|
||||
|
||||
|
||||
def test_suite():
|
||||
return unittest.makeSuite(sdistTestCase)
|
||||
|
||||
|
|
Loading…
Reference in New Issue