summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2018-05-16 18:00:50 -0400
committerJason R. Coombs <jaraco@jaraco.com>2018-05-16 18:00:50 -0400
commitc608faf8336bcb94624545e6c07a702afcb92b2d (patch)
treea35d7dc82d894c4e6a93b48b6f63162c56fd8d73
parentaf30e013a27c310b423331314fdbee1f93d2172f (diff)
downloadpython-setuptools-git-c608faf8336bcb94624545e6c07a702afcb92b2d.tar.gz
Tests in test_egg_info no longer invoke 'setup.py install', but instead focus on the behavior in egg_info as the namesake suggests.
-rw-r--r--setuptools/tests/test_egg_info.py50
1 files changed, 11 insertions, 39 deletions
diff --git a/setuptools/tests/test_egg_info.py b/setuptools/tests/test_egg_info.py
index 4397d064..8b3b90f7 100644
--- a/setuptools/tests/test_egg_info.py
+++ b/setuptools/tests/test_egg_info.py
@@ -128,11 +128,11 @@ class TestEggInfo(object):
self._validate_content_order(content, expected_order)
- def test_egg_base_installed_egg_info(self, tmpdir_cwd, env):
+ def test_expected_files_produced(self, tmpdir_cwd, env):
self._create_project()
- self._run_install_command(tmpdir_cwd, env)
- actual = self._find_egg_info_files(env.paths['lib'])
+ self._run_egg_info_command(tmpdir_cwd, env)
+ actual = os.listdir('foo.egg-info')
expected = [
'PKG-INFO',
@@ -154,8 +154,8 @@ class TestEggInfo(object):
'usage.rst': "Run 'hi'",
}
})
- self._run_install_command(tmpdir_cwd, env)
- egg_info_dir = self._find_egg_info_files(env.paths['lib']).base
+ self._run_egg_info_command(tmpdir_cwd, env)
+ egg_info_dir = os.path.join('.', 'foo.egg-info')
sources_txt = os.path.join(egg_info_dir, 'SOURCES.txt')
with open(sources_txt) as f:
assert 'docs/usage.rst' in f.read().split('\n')
@@ -394,7 +394,7 @@ class TestEggInfo(object):
self, tmpdir_cwd, env, requires, use_setup_cfg,
expected_requires, install_cmd_kwargs):
self._setup_script_with_requires(requires, use_setup_cfg)
- self._run_install_command(tmpdir_cwd, env, **install_cmd_kwargs)
+ self._run_egg_info_command(tmpdir_cwd, env, **install_cmd_kwargs)
egg_info_dir = os.path.join('.', 'foo.egg-info')
requires_txt = os.path.join(egg_info_dir, 'requires.txt')
if os.path.exists(requires_txt):
@@ -414,14 +414,14 @@ class TestEggInfo(object):
req = 'install_requires={"fake-factory==0.5.2", "pytz"}'
self._setup_script_with_requires(req)
with pytest.raises(AssertionError):
- self._run_install_command(tmpdir_cwd, env)
+ self._run_egg_info_command(tmpdir_cwd, env)
def test_extras_require_with_invalid_marker(self, tmpdir_cwd, env):
tmpl = 'extras_require={{":{marker}": ["barbazquux"]}},'
req = tmpl.format(marker=self.invalid_marker)
self._setup_script_with_requires(req)
with pytest.raises(AssertionError):
- self._run_install_command(tmpdir_cwd, env)
+ self._run_egg_info_command(tmpdir_cwd, env)
assert glob.glob(os.path.join(env.paths['lib'], 'barbazquux*')) == []
def test_extras_require_with_invalid_marker_in_req(self, tmpdir_cwd, env):
@@ -429,7 +429,7 @@ class TestEggInfo(object):
req = tmpl.format(marker=self.invalid_marker)
self._setup_script_with_requires(req)
with pytest.raises(AssertionError):
- self._run_install_command(tmpdir_cwd, env)
+ self._run_egg_info_command(tmpdir_cwd, env)
assert glob.glob(os.path.join(env.paths['lib'], 'barbazquux*')) == []
def test_provides_extra(self, tmpdir_cwd, env):
@@ -541,15 +541,6 @@ class TestEggInfo(object):
assert 'Requires-Python: >=2.7.12' in pkg_info_lines
assert 'Metadata-Version: 1.2' in pkg_info_lines
- def test_python_requires_install(self, tmpdir_cwd, env):
- self._setup_script_with_requires(
- """python_requires='>=1.2.3',""")
- self._run_install_command(tmpdir_cwd, env)
- egg_info_dir = self._find_egg_info_files(env.paths['lib']).base
- pkginfo = os.path.join(egg_info_dir, 'PKG-INFO')
- with open(pkginfo) as f:
- assert 'Requires-Python: >=1.2.3' in f.read().split('\n')
-
def test_manifest_maker_warning_suppression(self):
fixtures = [
"standard file not found: should have one of foo.py, bar.py",
@@ -559,17 +550,13 @@ class TestEggInfo(object):
for msg in fixtures:
assert manifest_maker._should_suppress_warning(msg)
- def _run_install_command(self, tmpdir_cwd, env, cmd=None, output=None):
+ def _run_egg_info_command(self, tmpdir_cwd, env, cmd=None, output=None):
environ = os.environ.copy().update(
HOME=env.paths['home'],
)
if cmd is None:
cmd = [
- 'install',
- '--home', env.paths['home'],
- '--install-lib', env.paths['lib'],
- '--install-scripts', env.paths['scripts'],
- '--install-data', env.paths['data'],
+ 'egg_info',
]
code, data = environment.run_setup_py(
cmd=cmd,
@@ -581,18 +568,3 @@ class TestEggInfo(object):
raise AssertionError(data)
if output:
assert output in data
-
- def _find_egg_info_files(self, root):
- class DirList(list):
- def __init__(self, files, base):
- super(DirList, self).__init__(files)
- self.base = base
-
- results = (
- DirList(filenames, dirpath)
- for dirpath, dirnames, filenames in os.walk(root)
- if os.path.basename(dirpath) == 'EGG-INFO'
- )
- # expect exactly one result
- result, = results
- return result