|
9 | 9 |
|
10 | 10 | from setuptools.config.setupcfg import ConfigHandler, Target, read_configuration
|
11 | 11 | from setuptools.dist import Distribution, _Distribution
|
| 12 | +from setuptools.errors import RemovedConfigError |
12 | 13 | from setuptools.warnings import SetuptoolsDeprecationWarning
|
13 | 14 |
|
14 | 15 | from ..textwrap import DALS
|
@@ -136,19 +137,20 @@ def test_basic(self, tmpdir):
|
136 | 137 | 'license': 'BSD 3-Clause License',
|
137 | 138 | }
|
138 | 139 |
|
139 |
| - with get_dist(tmpdir, meta_initial) as dist: |
140 |
| - metadata = dist.metadata |
| 140 | + with pytest.warns(SetuptoolsDeprecationWarning, match="Deprecated config"): |
| 141 | + with get_dist(tmpdir, meta_initial) as dist: |
| 142 | + metadata = dist.metadata |
141 | 143 |
|
142 |
| - assert metadata.version == '10.1.1' |
143 |
| - assert metadata.description == 'Some description' |
144 |
| - assert metadata.long_description_content_type == 'text/something' |
145 |
| - assert metadata.long_description == 'readme contents\nline2' |
146 |
| - assert metadata.provides == ['package', 'package.sub'] |
147 |
| - assert metadata.license == 'BSD 3-Clause License' |
148 |
| - assert metadata.name == 'fake_name' |
149 |
| - assert metadata.keywords == ['one', 'two'] |
150 |
| - assert metadata.download_url == 'http://test.test.com/test/' |
151 |
| - assert metadata. maintainer_email == '[email protected]' |
| 144 | + assert metadata.version == '10.1.1' |
| 145 | + assert metadata.description == 'Some description' |
| 146 | + assert metadata.long_description_content_type == 'text/something' |
| 147 | + assert metadata.long_description == 'readme contents\nline2' |
| 148 | + assert metadata.provides == ['package', 'package.sub'] |
| 149 | + assert metadata.license == 'BSD 3-Clause License' |
| 150 | + assert metadata.name == 'fake_name' |
| 151 | + assert metadata.keywords == ['one', 'two'] |
| 152 | + assert metadata.download_url == 'http://test.test.com/test/' |
| 153 | + assert metadata. maintainer_email == '[email protected]' |
152 | 154 |
|
153 | 155 | def test_license_cfg(self, tmpdir):
|
154 | 156 | fake_env(
|
@@ -207,16 +209,17 @@ def test_aliases(self, tmpdir):
|
207 | 209 | ' Programming Language :: Python :: 3.5\n',
|
208 | 210 | )
|
209 | 211 |
|
210 |
| - with get_dist(tmpdir) as dist: |
211 |
| - metadata = dist.metadata |
212 |
| - assert metadata. author_email == '[email protected]' |
213 |
| - assert metadata.url == 'http://test.test.com/test/' |
214 |
| - assert metadata.description == 'Short summary' |
215 |
| - assert metadata.platforms == ['a', 'b'] |
216 |
| - assert metadata.classifiers == [ |
217 |
| - 'Framework :: Django', |
218 |
| - 'Programming Language :: Python :: 3.5', |
219 |
| - ] |
| 212 | + with pytest.warns(match='Deprecated usage of .url.'): |
| 213 | + with get_dist(tmpdir) as dist: |
| 214 | + metadata = dist.metadata |
| 215 | + assert metadata. author_email == '[email protected]' |
| 216 | + assert metadata.url == 'http://test.test.com/test/' |
| 217 | + assert metadata.description == 'Short summary' |
| 218 | + assert metadata.platforms == ['a', 'b'] |
| 219 | + assert metadata.classifiers == [ |
| 220 | + 'Framework :: Django', |
| 221 | + 'Programming Language :: Python :: 3.5', |
| 222 | + ] |
220 | 223 |
|
221 | 224 | def test_multiline(self, tmpdir):
|
222 | 225 | fake_env(
|
@@ -449,6 +452,39 @@ def test_make_option_lowercase(self, tmpdir):
|
449 | 452 | assert metadata.name == 'foo'
|
450 | 453 | assert metadata.description == 'Some description'
|
451 | 454 |
|
| 455 | + @pytest.mark.parametrize( |
| 456 | + ("field", "value"), |
| 457 | + [ |
| 458 | + ("provides", "setuptools"), |
| 459 | + ("obsoletes", "setuptools"), |
| 460 | + ("url", "www.setuptools.com.br"), |
| 461 | + ("download_url", "www.setuptools.com.br/42"), |
| 462 | + ], |
| 463 | + ) |
| 464 | + def test_deprecated(self, tmpdir, field, value): |
| 465 | + fake_env( |
| 466 | + tmpdir, |
| 467 | + f'[metadata]\nname = foo\ndescription = Desc\n{field} = {value}', |
| 468 | + ) |
| 469 | + match = f"Deprecated usage of `{field}`" |
| 470 | + with pytest.warns(SetuptoolsDeprecationWarning, match=match): |
| 471 | + get_dist(tmpdir).__enter__() |
| 472 | + |
| 473 | + @pytest.mark.parametrize( |
| 474 | + ("field", "value"), |
| 475 | + [ |
| 476 | + ("requires", "setuptools"), |
| 477 | + ], |
| 478 | + ) |
| 479 | + def test_removed(self, tmpdir, field, value): |
| 480 | + fake_env( |
| 481 | + tmpdir, |
| 482 | + f'[metadata]\nname = foo\ndescription = Desc\n{field} = {value}', |
| 483 | + ) |
| 484 | + match = f"Invalid use of `{field}`" |
| 485 | + with pytest.raises(RemovedConfigError, match=match): |
| 486 | + get_dist(tmpdir).__enter__() |
| 487 | + |
452 | 488 |
|
453 | 489 | class TestOptions:
|
454 | 490 | def test_basic(self, tmpdir):
|
|
0 commit comments