Fix RstReader authors metadata processing

The reader would return a list of authors already, but
METADATA_PROCESSORS['authors'] expects a string.
Added a test case for this (only the HTMLReader had it).
This commit is contained in:
Ondrej Grover 2014-05-25 09:12:35 +02:00
commit b8db970455
3 changed files with 11 additions and 0 deletions

View file

@ -145,6 +145,7 @@ class RstReader(BaseReader):
elif element.tagname == 'authors': # author list
name = element.tagname
value = [element.astext() for element in element.children]
value = ','.join(value) # METADATA_PROCESSORS expects a string
else: # standard fields (e.g. address)
name = element.tagname
value = element.astext()

View file

@ -109,6 +109,7 @@ class TestArticlesGenerator(unittest.TestCase):
['This is an article with category !', 'published', 'yeah',
'article'],
['This is an article with multiple authors!', 'published', 'Default', 'article'],
['This is an article with multiple authors!', 'published', 'Default', 'article'],
['This is an article without category !', 'published', 'Default',
'article'],
['This is an article without category !', 'published',

View file

@ -150,6 +150,15 @@ class RstReaderTest(ReaderTest):
except ImportError:
return unittest.skip('need the typogrify distribution')
def test_article_with_multiple_authors(self):
page = self.read_file(path='article_with_multiple_authors.rst')
expected = {
'authors': ['First Author', 'Second Author']
}
for key, value in expected.items():
self.assertEqual(value, page.metadata[key], key)
class MdReaderTest(ReaderTest):