[Python-checkins] distutils2: make sure we control only filled values
tarek.ziade
python-checkins at python.org
Tue Apr 13 01:04:46 CEST 2010
tarek.ziade pushed 010d480f3066 to distutils2:
http://hg.python.org/distutils2/rev/010d480f3066
changeset: 114:010d480f3066
tag: tip
user: Tarek Ziade <tarek at ziade.org>
date: Tue Apr 13 01:04:36 2010 +0200
summary: make sure we control only filled values
files: src/distutils2/metadata.py, src/distutils2/tests/test_metadata.py
diff --git a/src/distutils2/metadata.py b/src/distutils2/metadata.py
--- a/src/distutils2/metadata.py
+++ b/src/distutils2/metadata.py
@@ -392,21 +392,24 @@
if self['Metadata-Version'] != '1.2':
return missing, warnings
- for field in _345_FIELDS:
- value = self[field]
- if value is None:
- continue
- if field in _PREDICATE_FIELDS:
- for v in value:
- if not is_valid_predicate(v.split(';')[0]):
- warnings.append('"%s" is not a valid predicate' % v)
- elif field in _VERSIONS_FIELDS:
- if not is_valid_versions(value):
- warnings.append('"%s" is not a valid predicate' % value)
- elif field in _VERSION_FIELDS:
- if not is_valid_version(value):
- warnings.append('"%s" is not a valid version' % value)
+ def is_valid_predicates(value):
+ for v in value:
+ if not is_valid_predicate(v.split(';')[0]):
+ return False
+ return True
+
+ for fields, controller in ((_PREDICATE_FIELDS, is_valid_predicates),
+ (_VERSIONS_FIELDS, is_valid_versions),
+ (_VERSION_FIELDS, is_valid_version)):
+ for field in fields:
+ value = self[field]
+ if value == 'UNKNOWN':
+ continue
+
+ if not controller(value):
+ warnings.append('Wrong value for "%s": %s' \
+ % (field, value))
return missing, warnings
diff --git a/src/distutils2/tests/test_metadata.py b/src/distutils2/tests/test_metadata.py
--- a/src/distutils2/tests/test_metadata.py
+++ b/src/distutils2/tests/test_metadata.py
@@ -198,7 +198,7 @@
metadata['Requires-dist'] = ['Foo (a)']
missing, warnings = metadata.check()
self.assertEquals(missing, ['Name', 'Home-page'])
- self.assertEquals(len(warnings), 3)
+ self.assertEquals(len(warnings), 2)
def test_suite():
--
Repository URL: http://hg.python.org/distutils2
More information about the Python-checkins
mailing list