Make the blogger tests consistant with the wp ones - cast

to list in test if needed.
This commit is contained in:
Stuart Axon 2018-11-15 21:37:17 +00:00
commit a597a31dad
2 changed files with 18 additions and 12 deletions

View file

@ -44,7 +44,7 @@ class TestBloggerXmlImporter(unittest.TestCase):
def setUp(self): def setUp(self):
self.old_locale = locale.setlocale(locale.LC_ALL) self.old_locale = locale.setlocale(locale.LC_ALL)
locale.setlocale(locale.LC_ALL, str('C')) locale.setlocale(locale.LC_ALL, str('C'))
self.posts = list(blogger2fields(BLOGGER_XML_SAMPLE)) self.posts = blogger2fields(BLOGGER_XML_SAMPLE)
def tearDown(self): def tearDown(self):
locale.setlocale(locale.LC_ALL, self.old_locale) locale.setlocale(locale.LC_ALL, self.old_locale)
@ -53,14 +53,15 @@ class TestBloggerXmlImporter(unittest.TestCase):
"""Check that importer only outputs pages, articles and comments, """Check that importer only outputs pages, articles and comments,
that these are correctly identified and that titles are correct. that these are correctly identified and that titles are correct.
""" """
kinds = {x[8] for x in self.posts} test_posts = list(self.posts)
kinds = {x[8] for x in test_posts}
self.assertEqual({'page', 'article', 'comment'}, kinds) self.assertEqual({'page', 'article', 'comment'}, kinds)
page_titles = {x[0] for x in self.posts if x[8] == 'page'} page_titles = {x[0] for x in test_posts if x[8] == 'page'}
self.assertEqual({'Test page', 'Test page 2'}, page_titles) self.assertEqual({'Test page', 'Test page 2'}, page_titles)
article_titles = {x[0] for x in self.posts if x[8] == 'article'} article_titles = {x[0] for x in test_posts if x[8] == 'article'}
self.assertEqual({'Black as Egypt\'s Night', 'The Steel Windpipe'}, self.assertEqual({'Black as Egypt\'s Night', 'The Steel Windpipe'},
article_titles) article_titles)
comment_titles = {x[0] for x in self.posts if x[8] == 'comment'} comment_titles = {x[0] for x in test_posts if x[8] == 'comment'}
self.assertEqual({'Mishka, always a pleasure to read your ' self.assertEqual({'Mishka, always a pleasure to read your '
'adventures!...'}, 'adventures!...'},
comment_titles) comment_titles)
@ -69,15 +70,16 @@ class TestBloggerXmlImporter(unittest.TestCase):
"""Check that importerer outputs only statuses 'published' and 'draft', """Check that importerer outputs only statuses 'published' and 'draft',
that these are correctly identified and that filenames are correct. that these are correctly identified and that filenames are correct.
""" """
statuses = {x[7] for x in self.posts} test_posts = list(self.posts)
statuses = {x[7] for x in test_posts}
self.assertEqual({'published', 'draft'}, statuses) self.assertEqual({'published', 'draft'}, statuses)
draft_filenames = {x[2] for x in self.posts if x[7] == 'draft'} draft_filenames = {x[2] for x in test_posts if x[7] == 'draft'}
# draft filenames are id-based # draft filenames are id-based
self.assertEqual({'page-4386962582497458967', self.assertEqual({'page-4386962582497458967',
'post-1276418104709695660'}, draft_filenames) 'post-1276418104709695660'}, draft_filenames)
published_filenames = {x[2] for x in self.posts if x[7] == 'published'} published_filenames = {x[2] for x in test_posts if x[7] == 'published'}
# published filenames are url-based, except comments # published filenames are url-based, except comments
self.assertEqual({'the-steel-windpipe', self.assertEqual({'the-steel-windpipe',
'test-page', 'test-page',

View file

@ -771,6 +771,7 @@ def fields2pelican(
wp_custpost=False, wp_attach=False, attachments=None): wp_custpost=False, wp_attach=False, attachments=None):
pandoc_version = get_pandoc_version() pandoc_version = get_pandoc_version()
posts_require_pandoc = []
settings = read_settings() settings = read_settings()
slug_subs = settings['SLUG_REGEX_SUBSTITUTIONS'] slug_subs = settings['SLUG_REGEX_SUBSTITUTIONS']
@ -780,9 +781,7 @@ def fields2pelican(
if filter_author and filter_author != author: if filter_author and filter_author != author:
continue continue
if is_pandoc_needed(in_markup) and not pandoc_version: if is_pandoc_needed(in_markup) and not pandoc_version:
error = ('Pandoc must be installed to complete the ' posts_require_pandoc.append(filename)
'requested import action.')
exit(error)
slug = not disable_slugs and filename or None slug = not disable_slugs and filename or None
@ -868,6 +867,11 @@ def fields2pelican(
with open(out_filename, 'w', encoding='utf-8') as fs: with open(out_filename, 'w', encoding='utf-8') as fs:
fs.write(header + content) fs.write(header + content)
if posts_require_pandoc:
logger.error("Pandoc must be installed to import the following posts:"
"\n {}".format("\n ".join(posts_require_pandoc)))
if wp_attach and attachments and None in attachments: if wp_attach and attachments and None in attachments:
print("downloading attachments that don't have a parent post") print("downloading attachments that don't have a parent post")
urls = attachments[None] urls = attachments[None]