From 8b14a1e5b2ca574fdd4fd2377567ec98a110d4b6 Mon Sep 17 00:00:00 2001 From: Agustin Henze Date: Wed, 13 Mar 2013 20:58:39 -0300 Subject: Imported Upstream version 5.4.2 --- tests/test_command_import_wordpress.py | 142 ++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 30 deletions(-) (limited to 'tests/test_command_import_wordpress.py') diff --git a/tests/test_command_import_wordpress.py b/tests/test_command_import_wordpress.py index bda9b49..3be2ad9 100644 --- a/tests/test_command_import_wordpress.py +++ b/tests/test_command_import_wordpress.py @@ -9,17 +9,38 @@ import mock class BasicCommandImportWordpress(unittest.TestCase): def setUp(self): - self.import_command = nikola.plugins.command_import_wordpress.CommandImportWordpress( - ) - self.import_filename = os.path.abspath( - os.path.join(os.path.dirname(__file__), - 'wordpress_export_example.xml')) + self.import_command = nikola.plugins.command_import_wordpress.CommandImportWordpress() + self.import_filename = os.path.abspath(os.path.join( + os.path.dirname(__file__), 'wordpress_export_example.xml')) def tearDown(self): del self.import_command del self.import_filename +class TestXMLGlueing(BasicCommandImportWordpress): + def test_making_correct_newlines(self): + xml = [b"Some information about how to (un)subscripe to a google group with a normal mail client.\n", + b"\n", + b"Easy.\n"] + + expected_xml = b"""Some information about how to (un)subscripe to a google group with a normal mail client. + + + +Easy. +""" + self.assertEqual(expected_xml, self.import_command._glue_xml_lines(xml)) + + class CommandImportWordpressRunTest(BasicCommandImportWordpress): def setUp(self): super(self.__class__, self).setUp() @@ -28,8 +49,7 @@ class CommandImportWordpressRunTest(BasicCommandImportWordpress): self.write_urlmap = mock.MagicMock() self.write_configuration = mock.MagicMock() - site_generation_patch = mock.patch( - 'nikola.plugins.command_import_wordpress.CommandImportWordpress.generate_base_site', self.site_generation) + site_generation_patch = mock.patch('os.system', self.site_generation) data_import_patch = mock.patch( 'nikola.plugins.command_import_wordpress.CommandImportWordpress.import_posts', self.data_import) write_urlmap_patch = mock.patch( @@ -56,14 +76,14 @@ class CommandImportWordpressRunTest(BasicCommandImportWordpress): def test_create_import(self): valid_import_arguments = ( - ['--filename', self.import_filename], - ['-f', self.import_filename, '-o', 'some_folder'], - [self.import_filename], - [self.import_filename, 'folder_argument'], + dict(options={'output_folder': 'some_folder'}, + args=[self.import_filename]), + dict(args=[self.import_filename]), + dict(args=[self.import_filename, 'folder_argument']), ) for arguments in valid_import_arguments: - self.import_command.run(*arguments) + self.import_command.execute(**arguments) self.assertTrue(self.site_generation.called) self.assertTrue(self.data_import.called) @@ -73,29 +93,24 @@ class CommandImportWordpressRunTest(BasicCommandImportWordpress): def test_ignoring_drafts(self): valid_import_arguments = ( - ['--filename', self.import_filename, '--no-drafts'], - ['-f', self.import_filename, '-o', 'some_folder', '-d'], + dict(options={'exclude_drafts': True}, args=[ + self.import_filename]), + dict( + options={'exclude_drafts': True, + 'output_folder': 'some_folder'}, + args=[self.import_filename]), ) for arguments in valid_import_arguments: - self.import_command.run(*arguments) + self.import_command.execute(**arguments) self.assertTrue(self.import_command.exclude_drafts) - def test_getting_help(self): - for arguments in (['-h'], ['--help']): - self.assertRaises(SystemExit, self.import_command.run, *arguments) - - self.assertFalse(self.site_generation.called) - self.assertFalse(self.data_import.called) - self.assertFalse(self.write_urlmap.called) - self.assertFalse(self.write_configuration.called) - class CommandImportWordpressTest(BasicCommandImportWordpress): def test_create_import_work_without_argument(self): # Running this without an argument must not fail. # It should show the proper usage of the command. - self.import_command.run() + self.import_command.execute() def test_populate_context(self): channel = self.import_command.get_channel_from_file( @@ -109,7 +124,7 @@ class CommandImportWordpressTest(BasicCommandImportWordpress): self.assertEqual('Wordpress blog title', context['BLOG_TITLE']) self.assertEqual('Nikola test blog ;) - with moré Ümläüts', context['BLOG_DESCRIPTION']) - self.assertEqual('http://some.blog', context['BLOG_URL']) + self.assertEqual('http://some.blog', context['SITE_URL']) self.assertEqual('mail@some.blog', context['BLOG_EMAIL']) self.assertEqual('Niko', context['BLOG_AUTHOR']) @@ -120,6 +135,8 @@ class CommandImportWordpressTest(BasicCommandImportWordpress): channel) self.import_command.url_map = {} # For testing we use an empty one. self.import_command.output_folder = 'new_site' + self.import_command.squash_newlines = True + self.import_command.no_downloads = False write_metadata = mock.MagicMock() write_content = mock.MagicMock() @@ -142,11 +159,42 @@ class CommandImportWordpressTest(BasicCommandImportWordpress): 'kontakt', '2009-07-16 20:20:32', None, []) self.assertTrue(write_content.called) - write_content.assert_any_call('new_site/posts/200704hoert.wp', 'An image.\n\n\n\ncaption test\n\n\n\nSome source code.\n\n\n\n\n~~~~~~~~~~~~{.Python}\n\n\nimport sys\n\nprint sys.version\n\n\n~~~~~~~~~~~~\n\n\n\n\nThe end.\n\n') + write_content.assert_any_call('new_site/posts/200704hoert.wp', + """An image. + +caption test + +Some source code. + +~~~~~~~~~~~~{.Python} + +import sys + +print sys.version + +~~~~~~~~~~~~ + +The end. + +""") + write_content.assert_any_call( - 'new_site/posts/200807arzt-und-pfusch-s-i-c-k.wp', 'Arzt+Pfusch - S.I.C.K.Arzt+Pfusch - S.I.C.K.Gerade bin ich \xfcber das Album S.I.C.K von Arzt+Pfusch gestolpert, welches Arzt+Pfusch zum Download f\xfcr lau anbieten. Das Album steht unter einer Creative Commons BY-NC-ND-Lizenz.\n\nDie Ladung noisebmstupidevildustrial gibts als MP3s mit 64kbps und VBR, als Ogg Vorbis und als FLAC (letztere hier). Artwork und Lyrics gibts nochmal einzeln zum Download.') + 'new_site/posts/200807arzt-und-pfusch-s-i-c-k.wp', + '''Arzt+Pfusch - S.I.C.K.Arzt+Pfusch - S.I.C.K.Gerade bin ich \xfcber das Album S.I.C.K von Arzt+Pfusch gestolpert, welches Arzt+Pfusch zum Download f\xfcr lau anbieten. Das Album steht unter einer Creative Commons BY-NC-ND-Lizenz. +Die Ladung noisebmstupidevildustrial gibts als MP3s mit 64kbps und VBR, als Ogg Vorbis und als FLAC (letztere hier). Artwork und Lyrics gibts nochmal einzeln zum Download.''') write_content.assert_any_call( - 'new_site/stories/kontakt.wp', '

Datenschutz

\n\nIch erhebe und speichere automatisch in meine Server Log Files Informationen, die dein Browser an mich \xfcbermittelt. Dies sind:\n\n\n\nDiese Daten sind f\xfcr mich nicht bestimmten Personen zuordenbar. Eine Zusammenf\xfchrung dieser Daten mit anderen Datenquellen wird nicht vorgenommen, die Daten werden einzig zu statistischen Zwecken erhoben.') + 'new_site/stories/kontakt.wp', """

Datenschutz

+Ich erhebe und speichere automatisch in meine Server Log Files Informationen, die dein Browser an mich \xfcbermittelt. Dies sind: + + + +Diese Daten sind f\xfcr mich nicht bestimmten Personen zuordenbar. Eine Zusammenf\xfchrung dieser Daten mit anderen Datenquellen wird nicht vorgenommen, die Daten werden einzig zu statistischen Zwecken erhoben.""") self.assertTrue(len(self.import_command.url_map) > 0) @@ -165,13 +213,16 @@ class CommandImportWordpressTest(BasicCommandImportWordpress): """Applying markup conversions to content.""" transform_sourcecode = mock.MagicMock() transform_caption = mock.MagicMock() + transform_newlines = mock.MagicMock() with mock.patch('nikola.plugins.command_import_wordpress.CommandImportWordpress.transform_sourcecode', transform_sourcecode): with mock.patch('nikola.plugins.command_import_wordpress.CommandImportWordpress.transform_caption', transform_caption): - self.import_command.transform_content("random content") + with mock.patch('nikola.plugins.command_import_wordpress.CommandImportWordpress.transform_multiple_newlines', transform_newlines): + self.import_command.transform_content("random content") self.assertTrue(transform_sourcecode.called) self.assertTrue(transform_caption.called) + self.assertTrue(transform_newlines.called) def test_transforming_source_code(self): """ @@ -226,6 +277,37 @@ asdasdas""" self.assertEqual( expected_content, self.import_command.transform_caption(content)) + def test_transform_multiple_newlines(self): + content = """This + + +has + + + +way to many + +newlines. + + +""" + expected_content = """This + +has + +way to many + +newlines. + +""" + self.import_command.squash_newlines = False + self.assertEqual(content, + self.import_command.transform_multiple_newlines(content)) + + self.import_command.squash_newlines = True + self.assertEqual(expected_content, + self.import_command.transform_multiple_newlines(content)) + def test_transform_caption_with_link_inside(self): content = """[caption caption="Fehlermeldung"]Fehlermeldung[/caption]""" transformed_content = self.import_command.transform_caption(content) -- cgit v1.2.3