diff -r 4db13b4e76aa Lib/distutils/tests/test_bdist_rpm.py --- a/Lib/distutils/tests/test_bdist_rpm.py Fri Jan 07 00:08:16 2011 +0100 +++ b/Lib/distutils/tests/test_bdist_rpm.py Fri Jan 07 21:08:32 2011 +0100 @@ -5,6 +5,7 @@ import os import tempfile import shutil +import textwrap from test.support import run_unittest from distutils.core import Distribution @@ -78,6 +79,64 @@ dist_created = os.listdir(os.path.join(pkg_dir, 'dist')) self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created) + + def test_filename_with_whitespace(self): + + # XXX I am unable yet to make this test work without + # spurious sdtout/stderr output under Mac OS X + if sys.platform != 'linux2': + return + + # http://bugs.python.org/issue809163 + # this test will run only if the rpm commands are found + if (find_executable('rpm') is None or + find_executable('rpmbuild') is None): + return + + SETUP_PY_WS = textwrap.dedent(""" + + from distutils.core import setup + import foo + + setup(name='foo', version='0.1', + py_modules=['foo', 'foo_with space'], + url='xxx', author='xxx', + author_email='xxx') + + """) + + # let's create a package with 2 files in it + tmp_dir = self.mkdtemp() + pkg_dir = os.path.join(tmp_dir, 'foo') + os.mkdir(pkg_dir) + self.write_file((pkg_dir, 'setup.py'), SETUP_PY_WS) + self.write_file((pkg_dir, 'foo.py'), '#') + self.write_file((pkg_dir, 'foo_with space.py'), '#') + self.write_file((pkg_dir, 'MANIFEST.in'), + 'include foo.py\n' + + 'include foo_with space.py') + self.write_file((pkg_dir, 'README'), '') + + dist = Distribution({'name': 'foo', 'version': '0.1', + 'py_modules': ['foo', 'foo_with space'], + 'url': 'xxx', 'author': 'xxx', + 'author_email': 'xxx'}) + dist.script_name = 'setup.py' + os.chdir(pkg_dir) + + sys.argv = ['setup.py'] + cmd = bdist_rpm(dist) + cmd.fix_python = True + + # running in quiet mode + cmd.quiet = 1 + cmd.ensure_finalized() + cmd.run() + + dist_created = os.listdir(os.path.join(pkg_dir, 'dist')) + self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created) + + def test_no_optimize_flag(self): # XXX I am unable yet to make this test work without