From e98ac74737c1f28ec730fa5c645062e0e0d5702b Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Wed, 27 Aug 2014 14:59:40 -0400 Subject: Allow named extensions to specify the Class Name If you were to import the class like this: from path.to.module import SomeExtensionClass Then the named extension would be the string: "path.to.module:SomeExtensionClass" This should simplify loading extensions from the command line or template filters -- expecially when multiple extensions are defined in a single python module. The docs still need updating. I'm waiting to update the docs after implementing #335 and #336 as that will require a major refactor of that section of the docs anyway. --- tests/test_apis.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'tests/test_apis.py') diff --git a/tests/test_apis.py b/tests/test_apis.py index f0c7f3d..e347cf9 100644 --- a/tests/test_apis.py +++ b/tests/test_apis.py @@ -40,6 +40,19 @@ class TestMarkdownBasics(unittest.TestCase): """ Test simple input. """ self.assertEqual(self.md.convert('foo'), '

foo

') + def testInstanceExtension(self): + """ Test Extension loading with a class instance. """ + from markdown.extensions.footnotes import FootnoteExtension + markdown.Markdown(extensions=[FootnoteExtension()]) + + def testNamedExtension(self): + """ Test Extension loading with Name (`path.to.module`). """ + markdown.Markdown(extensions=['markdown.extensions.footnotes']) + + def TestNamedExtensionWithClass(self): + """ Test Extension loading with class name (`path.to.module:Class`). """ + markdown.Markdown(extensions=['markdown.extensions.footnotes:FootnoteExtension']) + class TestBlockParser(unittest.TestCase): """ Tests of the BlockParser class. """ @@ -572,7 +585,7 @@ class TestCliOptionParsing(unittest.TestCase): 'end_url': '.html', 'html_class': 'test', }, - 'footnotes': { + 'footnotes:FootnotesExtension': { 'PLACE_MARKER': '~~~footnotes~~~' } } @@ -588,7 +601,7 @@ class TestCliOptionParsing(unittest.TestCase): 'end_url': '.html', 'html_class': 'test', }, - 'footnotes': { + 'footnotes:FootnotesExtension': { 'PLACE_MARKER': '~~~footnotes~~~' } } -- cgit v1.2.3