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.)"
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):
# 'template' and 'manifest' are, respectively, the names of
self.archive_files = None
-
def finalize_options(self):
if self.manifest is None:
self.manifest = "MANIFEST"
if self.dist_dir is None:
self.dist_dir = "dist"
-
def run(self):
# 'filelist' contains the list of files that will make up the
# manifest
else:
self.read_manifest()
-
def add_defaults(self):
"""Add all the default files to self.filelist:
- README or README.txt
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'.
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
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)