aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_utils.py
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2013-02-13 18:35:39 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2013-02-13 18:35:39 -0300
commita40930043121a4b60de8526d58417761a54ab718 (patch)
tree383c5cf8e320761ee942619282fe51be625179a7 /tests/test_utils.py
parent9c5708cc92af894e414bc76ee35ec2230de5d288 (diff)
Imported Upstream version 5.2upstream/5.2
Diffstat (limited to 'tests/test_utils.py')
-rw-r--r--tests/test_utils.py121
1 files changed, 121 insertions, 0 deletions
diff --git a/tests/test_utils.py b/tests/test_utils.py
new file mode 100644
index 0000000..8ec016f
--- /dev/null
+++ b/tests/test_utils.py
@@ -0,0 +1,121 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from context import nikola
+import os
+import unittest
+import mock
+
+
+class GetMetaTest(unittest.TestCase):
+ def test_getting_metadata_from_content(self):
+ file_metadata = [".. title: Nikola needs more tests!\n",
+ ".. slug: write-tests-now\n",
+ ".. date: 2012/09/15 19:52:05\n",
+ ".. tags:\n",
+ ".. link:\n",
+ ".. description:\n",
+ "Post content\n"]
+
+ opener_mock = mock.mock_open(read_data=file_metadata)
+ opener_mock.return_value.readlines.return_value = file_metadata
+
+ with mock.patch('nikola.utils.codecs.open', opener_mock, create=True):
+ (title, slug, date, tags, link,
+ description) = nikola.utils.get_meta('file_with_metadata')
+
+ self.assertEqual('Nikola needs more tests!', title)
+ self.assertEqual('write-tests-now', slug)
+ self.assertEqual('2012/09/15 19:52:05', date)
+ self.assertEqual('', tags)
+ self.assertEqual('', link)
+ self.assertEqual('', description)
+
+ def test_get_title_from_rest(self):
+ file_metadata = [".. slug: write-tests-now\n",
+ ".. date: 2012/09/15 19:52:05\n",
+ ".. tags:\n",
+ ".. link:\n",
+ ".. description:\n",
+ "Post Title\n",
+ "----------\n"]
+
+ opener_mock = mock.mock_open(read_data=file_metadata)
+ opener_mock.return_value.readlines.return_value = file_metadata
+
+ with mock.patch('nikola.utils.codecs.open', opener_mock, create=True):
+ (title, slug, date, tags, link,
+ description) = nikola.utils.get_meta('file_with_metadata')
+
+ self.assertEqual('Post Title', title)
+ self.assertEqual('write-tests-now', slug)
+ self.assertEqual('2012/09/15 19:52:05', date)
+ self.assertEqual('', tags)
+ self.assertEqual('', link)
+ self.assertEqual('', description)
+
+ def test_get_title_from_fname(self):
+ file_metadata = [".. slug: write-tests-now\n",
+ ".. date: 2012/09/15 19:52:05\n",
+ ".. tags:\n",
+ ".. link:\n",
+ ".. description:\n"]
+
+ opener_mock = mock.mock_open(read_data=file_metadata)
+ opener_mock.return_value.readlines.return_value = file_metadata
+
+ with mock.patch('nikola.utils.codecs.open', opener_mock, create=True):
+ (title, slug, date, tags, link,
+ description) = nikola.utils.get_meta('file_with_metadata')
+
+ self.assertEqual('file_with_metadata', title)
+ self.assertEqual('write-tests-now', slug)
+ self.assertEqual('2012/09/15 19:52:05', date)
+ self.assertEqual('', tags)
+ self.assertEqual('', link)
+ self.assertEqual('', description)
+
+ def test_use_filename_as_slug_fallback(self):
+ file_metadata = [".. title: Nikola needs more tests!\n",
+ ".. date: 2012/09/15 19:52:05\n",
+ ".. tags:\n",
+ ".. link:\n",
+ ".. description:\n",
+ "Post content\n"]
+
+ opener_mock = mock.mock_open(read_data=file_metadata)
+ opener_mock.return_value.readlines.return_value = file_metadata
+
+ with mock.patch('nikola.utils.codecs.open', opener_mock, create=True):
+ (title, slug, date, tags, link,
+ description) = nikola.utils.get_meta('Slugify this')
+
+ self.assertEqual('Nikola needs more tests!', title)
+ self.assertEqual('slugify-this', slug)
+ self.assertEqual('2012/09/15 19:52:05', date)
+ self.assertEqual('', tags)
+ self.assertEqual('', link)
+ self.assertEqual('', description)
+
+ def test_extracting_metadata_from_filename(self):
+ with mock.patch('nikola.utils.codecs.open', create=True):
+ (
+ title, slug, date, tags, link, description) = nikola.utils.get_meta('2013-01-23-the_slug-dubdubtitle.md',
+ '(?P<date>\d{4}-\d{2}-\d{2})-(?P<slug>.*)-(?P<title>.*)\.md')
+
+ self.assertEqual('dubdubtitle', title)
+ self.assertEqual('the_slug', slug)
+ self.assertEqual('2013-01-23', date)
+ self.assertEqual('', tags)
+ self.assertEqual('', link)
+ self.assertEqual('', description)
+
+ def test_get_meta_slug_only_from_filename(self):
+ with mock.patch('nikola.utils.codecs.open', create=True):
+ (title, slug, date, tags, link,
+ description) = nikola.utils.get_meta('some/path/the_slug.md')
+
+ self.assertEqual('the_slug', slug)
+
+if __name__ == '__main__':
+ unittest.main()