diff --git a/pelican/tests/content/article_with_typogrify_dashes.md b/pelican/tests/content/article_with_typogrify_dashes.md new file mode 100644 index 00000000..2914b2df --- /dev/null +++ b/pelican/tests/content/article_with_typogrify_dashes.md @@ -0,0 +1,3 @@ +Title: One -, two --, three --- dashes! + +One: -; Two: --; Three: --- diff --git a/pelican/tests/content/article_with_typogrify_dashes.rst b/pelican/tests/content/article_with_typogrify_dashes.rst new file mode 100644 index 00000000..90064c5d --- /dev/null +++ b/pelican/tests/content/article_with_typogrify_dashes.rst @@ -0,0 +1,4 @@ +One -, two --, three --- dashes! +################################ + +One: -; Two: --; Three: --- diff --git a/pelican/tests/test_readers.py b/pelican/tests/test_readers.py index b35a511e..db629eb7 100644 --- a/pelican/tests/test_readers.py +++ b/pelican/tests/test_readers.py @@ -416,6 +416,40 @@ class RstReaderTest(ReaderTest): with six.assertRaisesRegex(self, Exception, "underline too short"): self.read_file(path='../parse_error/parse_error.rst') + def test_typogrify_dashes_config(self): + # Test default config + page = self.read_file( + path = 'article_with_typogrify_dashes.rst', + TYPOGRIFY = True, + TYPOGRIFY_DASHES = 'default') + expected = "

One: -; Two: —; Three: —-

\n" + expected_title = "One -, two —, three —- dashes!" + + self.assertEqual(page.content, expected) + self.assertEqual(page.title, expected_title) + + # Test 'oldschool' variant + page = self.read_file( + path = 'article_with_typogrify_dashes.rst', + TYPOGRIFY = True, + TYPOGRIFY_DASHES = 'oldschool') + expected = "

One: -; Two: –; Three: —

\n" + expected_title = "One -, two –, three — dashes!" + + self.assertEqual(page.content, expected) + self.assertEqual(page.title, expected_title) + + # Test 'oldschool_inverted' variant + page = self.read_file( + path = 'article_with_typogrify_dashes.rst', + TYPOGRIFY = True, + TYPOGRIFY_DASHES = 'oldschool_inverted') + expected = "

One: -; Two: —; Three: –

\n" + expected_title = "One -, two —, three – dashes!" + + self.assertEqual(page.content, expected) + self.assertEqual(page.title, expected_title) + @unittest.skipUnless(readers.Markdown, "markdown isn't installed") class MdReaderTest(ReaderTest): @@ -631,6 +665,40 @@ class MdReaderTest(ReaderTest): self.assertEqual(metadata, {}) self.assertEqual(content, '') + def test_typogrify_dashes_config(self): + # Test default config + page = self.read_file( + path = 'article_with_typogrify_dashes.md', + TYPOGRIFY = True, + TYPOGRIFY_DASHES = 'default') + expected = "

One: -; Two: —; Three: —-

" + expected_title = "One -, two —, three —- dashes!" + + self.assertEqual(page.content, expected) + self.assertEqual(page.title, expected_title) + + # Test 'oldschool' variant + page = self.read_file( + path = 'article_with_typogrify_dashes.md', + TYPOGRIFY = True, + TYPOGRIFY_DASHES = 'oldschool') + expected = "

One: -; Two: –; Three: —

" + expected_title = "One -, two –, three — dashes!" + + self.assertEqual(page.content, expected) + self.assertEqual(page.title, expected_title) + + # Test 'oldschool_inverted' variant + page = self.read_file( + path = 'article_with_typogrify_dashes.md', + TYPOGRIFY = True, + TYPOGRIFY_DASHES = 'oldschool_inverted') + expected = "

One: -; Two: —; Three: –

" + expected_title = "One -, two —, three – dashes!" + + self.assertEqual(page.content, expected) + self.assertEqual(page.title, expected_title) + class HTMLReaderTest(ReaderTest): def test_article_with_comments(self):