aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--changelog.d/1590.change.rst1
-rw-r--r--setuptools/dist.py4
-rw-r--r--setuptools/tests/test_dist.py16
3 files changed, 19 insertions, 2 deletions
diff --git a/changelog.d/1590.change.rst b/changelog.d/1590.change.rst
new file mode 100644
index 00000000..6d2a9140
--- /dev/null
+++ b/changelog.d/1590.change.rst
@@ -0,0 +1 @@
+Fixed regression where packages without ``author`` or ``author_email`` fields generated malformed package metadata.
diff --git a/setuptools/dist.py b/setuptools/dist.py
index b741c648..7062ae8d 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -138,8 +138,8 @@ def write_pkg_file(self, file):
write_field('Home-page', self.get_url())
if version < StrictVersion('1.2'):
- write_field('Author:', self.get_contact())
- write_field('Author-email:', self.get_contact_email())
+ write_field('Author', self.get_contact())
+ write_field('Author-email', self.get_contact_email())
else:
optional_fields = (
('Author', 'author'),
diff --git a/setuptools/tests/test_dist.py b/setuptools/tests/test_dist.py
index a7f4452b..170d27ed 100644
--- a/setuptools/tests/test_dist.py
+++ b/setuptools/tests/test_dist.py
@@ -115,6 +115,20 @@ def __read_test_cases():
merge_dicts(base_attrs, {
'provides_extras': ['foo', 'bar']
}), marks=pytest.mark.xfail(reason="provides_extras not read")),
+ ('Missing author, missing author e-mail',
+ {'name': 'foo', 'version': '1.0.0'}),
+ ('Missing author',
+ {'name': 'foo',
+ 'version': '1.0.0',
+ 'author_email': 'snorri@sturluson.name'}),
+ ('Missing author e-mail',
+ {'name': 'foo',
+ 'version': '1.0.0',
+ 'author': 'Snorri Sturluson'}),
+ ('Missing author',
+ {'name': 'foo',
+ 'version': '1.0.0',
+ 'author': 'Snorri Sturluson'}),
]
return test_cases
@@ -141,6 +155,8 @@ def test_read_metadata(name, attrs):
tested_attrs = [
('name', dist_class.get_name),
('version', dist_class.get_version),
+ ('author', dist_class.get_contact),
+ ('author_email', dist_class.get_contact_email),
('metadata_version', dist_class.get_metadata_version),
('provides', dist_class.get_provides),
('description', dist_class.get_description),