Commit 0c1303c1 authored by W. Trevor King's avatar W. Trevor King

tests.egg_info: Test absolute egg-base install

Make sure this copies the appropriate metadata into EGG-INFO.  This
test currently fails, but the next commit fixes setuptools so it will
pass.
parent b3203c3f
import distutils.core
import os
import sys
import tempfile
import shutil
import stat
import unittest
import pkg_resources
......@@ -35,6 +37,20 @@ class TestEggInfo(unittest.TestCase):
entries_f.write(entries)
entries_f.close()
def _create_project(self):
with open('setup.py', 'w') as f:
f.write('from setuptools import setup\n')
f.write('\n')
f.write('setup(\n')
f.write(" name='foo',\n")
f.write(" py_modules=['hello'],\n")
f.write(" entry_points={'console_scripts': ['hi = hello.run']},\n")
f.write(' zip_safe=False,\n')
f.write(' )\n')
with open('hello.py', 'w') as f:
f.write('def run():\n')
f.write(" print('hello')\n")
@skipIf(not test_svn._svn_check, "No SVN to text, in the first place")
def test_version_10_format(self):
"""
......@@ -81,6 +97,48 @@ class TestEggInfo(unittest.TestCase):
self.assertEqual(rev, '89000')
def test_egg_base_installed_egg_info(self):
self._create_project()
temp_dir = tempfile.mkdtemp(prefix='setuptools-test.')
os.chmod(temp_dir, stat.S_IRWXU)
try:
paths = {}
for dirname in ['home', 'lib', 'scripts', 'data', 'egg-base']:
paths[dirname] = os.path.join(temp_dir, dirname)
os.mkdir(paths[dirname])
config = os.path.join(paths['home'], '.pydistutils.cfg')
with open(config, 'w') as f:
f.write('[egg_info]\n')
f.write('egg-base = %s\n' % paths['egg-base'])
environ = os.environ.copy()
environ['HOME'] = paths['home']
code, data = environment.run_setup_py(
cmd=[
'install', '--home', paths['home'],
'--install-lib', paths['lib'],
'--install-scripts', paths['scripts'],
'--install-data', paths['data']],
pypath=':'.join([paths['lib'], self.old_cwd]),
data_stream=1,
env=environ)
if code:
raise AssertionError(data)
egg_info = None
for dirpath, dirnames, filenames in os.walk(paths['lib']):
if os.path.basename(dirpath) == 'EGG-INFO':
egg_info = sorted(filenames)
self.assertEqual(
egg_info,
['PKG-INFO',
'SOURCES.txt',
'dependency_links.txt',
'entry_points.txt',
'not-zip-safe',
'top_level.txt'])
finally:
shutil.rmtree(temp_dir)
DUMMY_SOURCE_TXT = """CHANGES.txt
CONTRIBUTORS.txt
HISTORY.txt
......
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