1
0
Fork 0
forked from github/pelican

Merge pull request #241 from draftcode/metadata_lowercase

Make names of metadata lower.
This commit is contained in:
Alexis Metaireau 2012-03-12 04:15:34 -07:00
commit 71a5ba3283
3 changed files with 17 additions and 2 deletions

View file

@ -36,8 +36,8 @@ class Reader(object):
self.settings = settings
def process_metadata(self, name, value):
if name.lower() in _METADATA_PROCESSORS:
return _METADATA_PROCESSORS[name.lower()](value, self.settings)
if name in _METADATA_PROCESSORS:
return _METADATA_PROCESSORS[name](value, self.settings)
return value
@ -75,6 +75,7 @@ class RstReader(Reader):
else: # standard fields (e.g. address)
name = element.tagname
value = element.astext()
name = name.lower()
output[name] = self.process_metadata(name, value)
return output

View file

@ -0,0 +1,6 @@
This is a super article !
#########################
:Category: Yeah

View file

@ -35,6 +35,14 @@ class RstReaderTest(unittest.TestCase):
for key, value in expected.items():
self.assertEquals(value, metadata[key], key)
def test_article_metadata_key_lowercase(self):
"""Keys of metadata should be lowercase."""
reader = readers.RstReader({})
content, metadata = reader.read(_filename('article_with_uppercase_metadata.rst'))
self.assertIn('category', metadata, "Key should be lowercase.")
self.assertEquals('Yeah', metadata.get('category'), "Value keeps cases.")
def test_typogrify(self):
# if nothing is specified in the settings, the content should be
# unmodified