Commit 08bac0ab authored by Jason R. Coombs's avatar Jason R. Coombs

Extract fixture for the environment.

parent deef22ce
import os import os
import stat import stat
import pytest
from . import environment from . import environment
from .textwrap import DALS from .textwrap import DALS
from . import contexts from . import contexts
...@@ -29,53 +31,61 @@ class TestEggInfo: ...@@ -29,53 +31,61 @@ class TestEggInfo:
print('hello') print('hello')
""")) """))
def test_egg_base_installed_egg_info(self, tmpdir_cwd): @pytest.yield_fixture
self._create_project() def env(self):
with contexts.tempdir(prefix='setuptools-test.') as temp_dir: class Environment(str): pass
os.chmod(temp_dir, stat.S_IRWXU)
with contexts.tempdir(prefix='setuptools-test.') as env_dir:
env = Environment(env_dir)
os.chmod(env_dir, stat.S_IRWXU)
subs = 'home', 'lib', 'scripts', 'data', 'egg-base' subs = 'home', 'lib', 'scripts', 'data', 'egg-base'
paths = dict( env.paths = dict(
(dirname, os.path.join(temp_dir, dirname)) (dirname, os.path.join(env_dir, dirname))
for dirname in subs for dirname in subs
) )
list(map(os.mkdir, paths.values())) list(map(os.mkdir, env.paths.values()))
config = os.path.join(paths['home'], '.pydistutils.cfg') config = os.path.join(env.paths['home'], '.pydistutils.cfg')
with open(config, 'w') as f: with open(config, 'w') as f:
f.write(DALS(""" f.write(DALS("""
[egg_info] [egg_info]
egg-base = %(egg-base)s egg-base = %(egg-base)s
""" % paths """ % env.paths
)) ))
environ = os.environ.copy().update( yield env
HOME=paths['home'],
) def test_egg_base_installed_egg_info(self, tmpdir_cwd, env):
cmd = [ self._create_project()
'install',
'--home', paths['home'], environ = os.environ.copy().update(
'--install-lib', paths['lib'], HOME=env.paths['home'],
'--install-scripts', paths['scripts'], )
'--install-data', paths['data'], cmd = [
] 'install',
code, data = environment.run_setup_py( '--home', env.paths['home'],
cmd=cmd, '--install-lib', env.paths['lib'],
pypath=os.pathsep.join([paths['lib'], str(tmpdir_cwd)]), '--install-scripts', env.paths['scripts'],
data_stream=1, '--install-data', env.paths['data'],
env=environ, ]
) code, data = environment.run_setup_py(
if code: cmd=cmd,
raise AssertionError(data) pypath=os.pathsep.join([env.paths['lib'], str(tmpdir_cwd)]),
data_stream=1,
env=environ,
)
if code:
raise AssertionError(data)
actual = self._find_egg_info_files(paths['lib']) actual = self._find_egg_info_files(env.paths['lib'])
expected = [ expected = [
'PKG-INFO', 'PKG-INFO',
'SOURCES.txt', 'SOURCES.txt',
'dependency_links.txt', 'dependency_links.txt',
'entry_points.txt', 'entry_points.txt',
'not-zip-safe', 'not-zip-safe',
'top_level.txt', 'top_level.txt',
] ]
assert sorted(actual) == expected assert sorted(actual) == expected
def _find_egg_info_files(self, root): def _find_egg_info_files(self, root):
results = ( results = (
......
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