summaryrefslogtreecommitdiff
path: root/dev-python/markdown/files/markdown-2.2.0-tests.patch
blob: ef05702c643b3e4ca652331310962950b1f2b2f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
https://github.com/waylan/Python-Markdown/issues/112
https://github.com/waylan/Python-Markdown/commit/5b3e724fb78da73ab87fb34e4ac9d9299773cfed

--- markdown/__init__.py
+++ markdown/__init__.py
@@ -37,6 +37,7 @@
 import codecs
 import sys
 import logging
+import warnings
 import util
 from preprocessors import build_preprocessors
 from blockprocessors import build_block_parser
@@ -163,10 +164,10 @@
             if isinstance(ext, basestring):
                 ext = self.build_extension(ext, configs.get(ext, []))
             if isinstance(ext, Extension):
-                # might raise NotImplementedError, but that's the extension author's problem
                 ext.extendMarkdown(self, globals())
             elif ext is not None:
-                raise ValueError('Extension "%s.%s" must be of type: "markdown.Extension".' \
+                raise TypeError(
+                    'Extension "%s.%s" must be of type: "markdown.Extension"'
                     % (ext.__class__.__module__, ext.__class__.__name__))
 
         return self
@@ -200,19 +201,22 @@
             module_name_old_style = '_'.join(['mdx', ext_name])
             try: # Old style (mdx_<extension>)
                 module = __import__(module_name_old_style)
-            except ImportError:
-                logger.warn("Failed loading extension '%s' from '%s' or '%s'"
-                    % (ext_name, module_name, module_name_old_style))
-                # Return None so we don't try to initiate none-existant extension
-                return None
+            except ImportError, e:
+                message = "Failed loading extension '%s' from '%s' or '%s'" \
+                    % (ext_name, module_name, module_name_old_style)
+                e.args = (message,) + e.args[1:]
+                raise
 
         # If the module is loaded successfully, we expect it to define a
         # function called makeExtension()
         try:
             return module.makeExtension(configs.items())
         except AttributeError, e:
-            logger.warn("Failed to initiate extension '%s': %s" % (ext_name, e))
-            return None
+            message = e.args[0]
+            message = "Failed to initiate extension " \
+                      "'%s': %s" % (ext_name, message)
+            e.args = (message,) + e.args[1:]
+            raise
 
     def registerExtension(self, extension):
         """ This gets called by the extension """
--- tests/test_apis.py
+++ tests/test_apis.py
@@ -245,18 +245,18 @@
 
     def testLoadExtensionFailure(self):
         """ Test failure of an extension to load. """
-        self.assertRaises(ValueError, 
+        self.assertRaises(ImportError, 
                         markdown.Markdown, extensions=['non_existant_ext']) 
 
     def testLoadBadExtension(self):
         """ Test loading of an Extension with no makeExtension function. """
         _create_fake_extension(name='fake', has_factory_func=False)
-        self.assertRaises(ValueError, markdown.Markdown, extensions=['fake'])
+        self.assertRaises(AttributeError, markdown.Markdown, extensions=['fake'])
 
     def testNonExtension(self):
         """ Test loading a non Extension object as an extension. """
         _create_fake_extension(name='fake', is_wrong_type=True)
-        self.assertRaises(ValueError, markdown.Markdown, extensions=['fake'])
+        self.assertRaises(TypeError, markdown.Markdown, extensions=['fake'])
 
     def testBaseExtention(self):
         """ Test that the base Extension class will raise NotImplemented. """