Commit 6d8137e9 authored by Éric Araujo's avatar Éric Araujo

Merged revisions 83993 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83993 | eric.araujo | 2010-08-14 04:30:34 +0200 (sam., 14 août 2010) | 2 lines

  Use a marker in generated MANIFEST files, don't touch files without it. Fixes #8688.
........
parent 5673d48d
...@@ -335,8 +335,21 @@ class sdist(Command): ...@@ -335,8 +335,21 @@ class sdist(Command):
by 'add_defaults()' and 'read_template()') to the manifest file by 'add_defaults()' and 'read_template()') to the manifest file
named by 'self.manifest'. named by 'self.manifest'.
""" """
self.execute(file_util.write_file, if os.path.isfile(self.manifest):
(self.manifest, self.filelist.files), fp = open(self.manifest)
try:
first_line = fp.readline()
finally:
fp.close()
if first_line != '# file GENERATED by distutils, do NOT edit\n':
log.info("not writing to manually maintained "
"manifest file '%s'" % self.manifest)
return
content = self.filelist.files[:]
content.insert(0, '# file GENERATED by distutils, do NOT edit')
self.execute(file_util.write_file, (self.manifest, content),
"writing manifest file '%s'" % self.manifest) "writing manifest file '%s'" % self.manifest)
def read_manifest(self): def read_manifest(self):
......
...@@ -29,6 +29,7 @@ setup(name='fake') ...@@ -29,6 +29,7 @@ setup(name='fake')
""" """
MANIFEST = """\ MANIFEST = """\
# file GENERATED by distutils, do NOT edit
README README
inroot.txt inroot.txt
setup.py setup.py
...@@ -294,7 +295,7 @@ class SDistTestCase(PyPIRCCommandTestCase): ...@@ -294,7 +295,7 @@ class SDistTestCase(PyPIRCCommandTestCase):
finally: finally:
f.close() f.close()
self.assertEquals(len(manifest), 4) self.assertEquals(len(manifest), 5)
# adding a file # adding a file
self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#') self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#')
...@@ -314,9 +315,40 @@ class SDistTestCase(PyPIRCCommandTestCase): ...@@ -314,9 +315,40 @@ class SDistTestCase(PyPIRCCommandTestCase):
f.close() f.close()
# do we have the new file in MANIFEST ? # do we have the new file in MANIFEST ?
self.assertEquals(len(manifest2), 5) self.assertEquals(len(manifest2), 6)
self.assertIn('doc2.txt', manifest2[-1]) self.assertIn('doc2.txt', manifest2[-1])
def test_manifest_marker(self):
# check that autogenerated MANIFESTs have a marker
dist, cmd = self.get_cmd()
cmd.ensure_finalized()
cmd.run()
f = open(cmd.manifest)
try:
manifest = [line.strip() for line in f.read().split('\n')
if line.strip() != '']
finally:
f.close()
self.assertEqual(manifest[0],
'# file GENERATED by distutils, do NOT edit')
def test_manual_manifest(self):
# check that a MANIFEST without a marker is left alone
dist, cmd = self.get_cmd()
cmd.ensure_finalized()
self.write_file((self.tmp_dir, cmd.manifest), 'README.manual')
cmd.run()
f = open(cmd.manifest)
try:
manifest = [line.strip() for line in f.read().split('\n')
if line.strip() != '']
finally:
f.close()
self.assertEqual(manifest, ['README.manual'])
def test_suite(): def test_suite():
return unittest.makeSuite(SDistTestCase) return unittest.makeSuite(SDistTestCase)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment