diff options
| author | Tarek Ziade <tarek@ziade.org> | 2010-04-13 01:04:36 +0200 |
|---|---|---|
| committer | Tarek Ziade <tarek@ziade.org> | 2010-04-13 01:04:36 +0200 |
| commit | 0c38acb9a69aae99de8546ffa97bcd25c229945f (patch) | |
| tree | 0e593252def4027ebedae12b14b3f4f12a2bb3a0 /src/distutils2 | |
| parent | b504c483860468dfe4e95b1e430316f6a614bc69 (diff) | |
| download | disutils2-0c38acb9a69aae99de8546ffa97bcd25c229945f.tar.gz | |
make sure we control only filled values
Diffstat (limited to 'src/distutils2')
| -rw-r--r-- | src/distutils2/metadata.py | 31 | ||||
| -rw-r--r-- | src/distutils2/tests/test_metadata.py | 2 |
2 files changed, 18 insertions, 15 deletions
diff --git a/src/distutils2/metadata.py b/src/distutils2/metadata.py index a2d25fd..446f93d 100644 --- a/src/distutils2/metadata.py +++ b/src/distutils2/metadata.py @@ -392,21 +392,24 @@ class DistributionMetadata(object): 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 index 6c34235..3313fb5 100644 --- a/src/distutils2/tests/test_metadata.py +++ b/src/distutils2/tests/test_metadata.py @@ -198,7 +198,7 @@ class DistributionMetadataTestCase(unittest2.TestCase): 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(): |
