Skip to content

Commit

Permalink
Raise error if encountering both dev_requires and extras_require.dev
Browse files Browse the repository at this point in the history
  • Loading branch information
flying-sheep committed Jun 29, 2018
1 parent 8ec6ee2 commit 56963de
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 18 deletions.
7 changes: 3 additions & 4 deletions flit/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,6 @@ class Metadata:

metadata_version = "2.1"

# deprecated, we use “extras_require: {'dev': ...}” for it
dev_requires = ()

def __init__(self, data):
self.name = data.pop('name')
self.version = data.pop('version')
Expand All @@ -240,7 +237,9 @@ def __init__(self, data):
extras_require = data.pop('extras_require', {})
dev_requires = data.pop('dev_requires', None)
if dev_requires is not None:
log.warning('“dev_requires = ...” is obsolete. Use “extras_require = {"dev" = ...}” instead.')
if 'dev' in extras_require:
raise ValueError('Ambiguity: Encountered dev-requires together with its replacement extras-require.dev.')
log.warning('“dev-requires = ...” is obsolete. Use “extras-require = {"dev" = ...}” instead.')
extras_require.setdefault('dev', []).extend(dev_requires)
explicit_extras = data.pop('provides_extra', ())
self.provides_extra = list(set(explicit_extras) | extras_require.keys())
Expand Down
7 changes: 0 additions & 7 deletions tests/samples/dev_requires_with_empty_lines.ini

This file was deleted.

10 changes: 3 additions & 7 deletions tests/test_inifile.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,9 @@ def test_classifiers_with_space():
"""
read_pkg_ini(samples_dir / 'classifiers_with_space.ini')

@pytest.mark.parametrize(('filename', 'key', 'expected'), [
('requires_with_empty_lines.ini', 'requires_dist', ['foo', 'bar']),
('dev_requires_with_empty_lines.ini', 'dev_requires', ['foo']),
])
def test_requires_with_empty_lines(filename, key, expected):
ini_info = read_pkg_ini(samples_dir / filename)
assert ini_info['metadata'][key] == expected
def test_requires_with_empty_lines():
ini_info = read_pkg_ini(samples_dir / 'requires_with_empty_lines.ini')
assert ini_info['metadata']['requires_dist'] == ['foo', 'bar']

def test_missing_entrypoints():
with pytest.raises(FileNotFoundError):
Expand Down

0 comments on commit 56963de

Please sign in to comment.