From d12d2c95b42c5fc0910b13859001755d71ad3438 Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Wed, 7 Aug 2013 22:17:30 -0400 Subject: Allow extensions to register serializers Setting output_format must happen after extensions are loaded. Only in that way can an extension register a serializer so that it will then be available to be used with the output_format keyword. A test has been added to avoid this regression from happening again in the future. Fixes #238, partially reverses commit 41cc055 and provides a better fix for --- tests/test_apis.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/test_apis.py b/tests/test_apis.py index 4a7c7c7..bbe165d 100644 --- a/tests/test_apis.py +++ b/tests/test_apis.py @@ -358,6 +358,24 @@ class testSerializers(unittest.TestCase): 'not valid html
') + def buildExtension(self): + """ Build an extension which registers fakeSerializer. """ + def fakeSerializer(elem): + # Ignore input and return hardcoded output + return '

foo

' + + class registerFakeSerializer(markdown.extensions.Extension): + def extendMarkdown(self, md, md_globals): + md.output_formats['fake'] = fakeSerializer + + return registerFakeSerializer() + + def testRegisterSerializer(self): + self.assertEqual(markdown.markdown('baz', + extensions=[self.buildExtension()], output_format='fake'), + '

foo

') + + class testAtomicString(unittest.TestCase): """ Test that AtomicStrings are honored (not parsed). """ -- cgit v1.2.3