Commit dfd59c2a authored by Jason R. Coombs's avatar Jason R. Coombs Committed by GitHub

Merge pull request #1979 from pypa/debt/remove-features

Remove Feature support
parents 37e1ca6d da94b050
Once again as in 3.0, removed the Features feature.
...@@ -91,7 +91,6 @@ setup_params = dict( ...@@ -91,7 +91,6 @@ setup_params = dict(
], ],
"setuptools.finalize_distribution_options": [ "setuptools.finalize_distribution_options": [
"parent_finalize = setuptools.dist:_Distribution.finalize_options", "parent_finalize = setuptools.dist:_Distribution.finalize_options",
"features = setuptools.dist:Distribution._finalize_feature_opts",
"keywords = setuptools.dist:Distribution._finalize_setup_keywords", "keywords = setuptools.dist:Distribution._finalize_setup_keywords",
"2to3_doctests = " "2to3_doctests = "
"setuptools.dist:Distribution._finalize_2to3_doctests", "setuptools.dist:Distribution._finalize_2to3_doctests",
......
...@@ -16,7 +16,7 @@ from setuptools.extern.six.moves import filter, map ...@@ -16,7 +16,7 @@ from setuptools.extern.six.moves import filter, map
import setuptools.version import setuptools.version
from setuptools.extension import Extension from setuptools.extension import Extension
from setuptools.dist import Distribution, Feature from setuptools.dist import Distribution
from setuptools.depends import Require from setuptools.depends import Require
from . import monkey from . import monkey
...@@ -24,7 +24,7 @@ __metaclass__ = type ...@@ -24,7 +24,7 @@ __metaclass__ = type
__all__ = [ __all__ = [
'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require', 'setup', 'Distribution', 'Command', 'Extension', 'Require',
'SetuptoolsDeprecationWarning', 'SetuptoolsDeprecationWarning',
'find_packages' 'find_packages'
] ]
......
This diff is collapsed.
...@@ -4,7 +4,7 @@ import sys ...@@ -4,7 +4,7 @@ import sys
import os import os
import distutils.core import distutils.core
import distutils.cmd import distutils.cmd
from distutils.errors import DistutilsOptionError, DistutilsPlatformError from distutils.errors import DistutilsOptionError
from distutils.errors import DistutilsSetupError from distutils.errors import DistutilsSetupError
from distutils.core import Extension from distutils.core import Extension
from distutils.version import LooseVersion from distutils.version import LooseVersion
...@@ -14,7 +14,6 @@ import pytest ...@@ -14,7 +14,6 @@ import pytest
import setuptools import setuptools
import setuptools.dist import setuptools.dist
import setuptools.depends as dep import setuptools.depends as dep
from setuptools import Feature
from setuptools.depends import Require from setuptools.depends import Require
from setuptools.extern import six from setuptools.extern import six
...@@ -216,86 +215,6 @@ class TestDistro: ...@@ -216,86 +215,6 @@ class TestDistro:
self.dist.exclude(package_dir=['q']) self.dist.exclude(package_dir=['q'])
@pytest.mark.filterwarnings('ignore:Features are deprecated')
class TestFeatures:
def setup_method(self, method):
self.req = Require('Distutils', '1.0.3', 'distutils')
self.dist = makeSetup(
features={
'foo': Feature(
"foo", standard=True, require_features=['baz', self.req]),
'bar': Feature("bar", standard=True, packages=['pkg.bar'],
py_modules=['bar_et'], remove=['bar.ext'],
),
'baz': Feature(
"baz", optional=False, packages=['pkg.baz'],
scripts=['scripts/baz_it'],
libraries=[('libfoo', 'foo/foofoo.c')]
),
'dwim': Feature("DWIM", available=False, remove='bazish'),
},
script_args=['--without-bar', 'install'],
packages=['pkg.bar', 'pkg.foo'],
py_modules=['bar_et', 'bazish'],
ext_modules=[Extension('bar.ext', ['bar.c'])]
)
def testDefaults(self):
assert not Feature(
"test", standard=True, remove='x', available=False
).include_by_default()
assert Feature("test", standard=True, remove='x').include_by_default()
# Feature must have either kwargs, removes, or require_features
with pytest.raises(DistutilsSetupError):
Feature("test")
def testAvailability(self):
with pytest.raises(DistutilsPlatformError):
self.dist.features['dwim'].include_in(self.dist)
def testFeatureOptions(self):
dist = self.dist
assert (
('with-dwim', None, 'include DWIM') in dist.feature_options
)
assert (
('without-dwim', None, 'exclude DWIM (default)')
in dist.feature_options
)
assert (
('with-bar', None, 'include bar (default)') in dist.feature_options
)
assert (
('without-bar', None, 'exclude bar') in dist.feature_options
)
assert dist.feature_negopt['without-foo'] == 'with-foo'
assert dist.feature_negopt['without-bar'] == 'with-bar'
assert dist.feature_negopt['without-dwim'] == 'with-dwim'
assert ('without-baz' not in dist.feature_negopt)
def testUseFeatures(self):
dist = self.dist
assert dist.with_foo == 1
assert dist.with_bar == 0
assert dist.with_baz == 1
assert ('bar_et' not in dist.py_modules)
assert ('pkg.bar' not in dist.packages)
assert ('pkg.baz' in dist.packages)
assert ('scripts/baz_it' in dist.scripts)
assert (('libfoo', 'foo/foofoo.c') in dist.libraries)
assert dist.ext_modules == []
assert dist.require_features == [self.req]
# If we ask for bar, it should fail because we explicitly disabled
# it on the command line
with pytest.raises(DistutilsOptionError):
dist.include_feature('bar')
def testFeatureWithInvalidRemove(self):
with pytest.raises(SystemExit):
makeSetup(features={'x': Feature('x', remove='y')})
class TestCommandTests: class TestCommandTests:
def testTestIsCommand(self): def testTestIsCommand(self):
test_cmd = makeSetup().get_command_obj('test') test_cmd = makeSetup().get_command_obj('test')
......
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