diff options
author | Waylan Limberg <waylan@gmail.com> | 2009-05-30 22:31:55 -0400 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2009-06-05 22:25:51 -0400 |
commit | 8b430d251b2518fa3303d7027f50268e0254b7a1 (patch) | |
tree | c9265f6ce7024d400b6c8bb58c26bda6a97f86d5 /tests/plugins.py | |
parent | cc452998dc1af441cf3f9c5d0c7287cb5de48c4a (diff) | |
download | markdown-8b430d251b2518fa3303d7027f50268e0254b7a1.tar.gz markdown-8b430d251b2518fa3303d7027f50268e0254b7a1.tar.bz2 markdown-8b430d251b2518fa3303d7027f50268e0254b7a1.zip |
Moves tests to a subdir of the markdown lib.
Diffstat (limited to 'tests/plugins.py')
-rw-r--r-- | tests/plugins.py | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/tests/plugins.py b/tests/plugins.py deleted file mode 100644 index d0cb7f8..0000000 --- a/tests/plugins.py +++ /dev/null @@ -1,113 +0,0 @@ -import traceback -from util import MdSyntaxError -from nose.plugins import Plugin -from nose.plugins.errorclass import ErrorClass, ErrorClassPlugin - -class MdSyntaxErrorPlugin(ErrorClassPlugin): - """ Add MdSyntaxError and ensure proper formatting. """ - mdsyntax = ErrorClass(MdSyntaxError, label='MdSyntaxError', isfailure=True) - enabled = True - - def configure(self, options, conf): - self.conf = conf - - def addError(self, test, err): - """ Ensure other plugins see the error by returning nothing here. """ - pass - - def formatError(self, test, err): - """ Remove unnessecary and unhelpful traceback from error report. """ - et, ev, tb = err - if et.__name__ == 'MdSyntaxError': - return et, ev, '' - return err - - -def escape(html): - """ Escape HTML for display as source within HTML. """ - html = html.replace('&', '&') - html = html.replace('<', '<') - html = html.replace('>', '>') - return html - - -class HtmlOutput(Plugin): - """Output test results as ugly, unstyled html. """ - - name = 'html-output' - score = 2 # run late - enabled = True - - def __init__(self): - super(HtmlOutput, self).__init__() - self.html = [ '<html><head>', - '<title>Test output</title>', - '</head><body>' ] - - def configure(self, options, conf): - self.conf = conf - - def addSuccess(self, test): - self.html.append('<span>ok</span>') - - def addError(self, test, err): - err = self.formatErr(err) - self.html.append('<span>ERROR</span>') - self.html.append('<pre>%s</pre>' % escape(err)) - - def addFailure(self, test, err): - err = self.formatErr(err) - self.html.append('<span>FAIL</span>') - self.html.append('<pre>%s</pre>' % escape(err)) - - def finalize(self, result): - self.html.append('<div>') - self.html.append("Ran %d test%s" % - (result.testsRun, result.testsRun != 1 and "s" -or "")) - self.html.append('</div>') - self.html.append('<div>') - if not result.wasSuccessful(): - self.html.extend(['<span>FAILED (', - 'failures=%d ' % len(result.failures), - 'errors=%d' % len(result.errors)]) - for cls in result.errorClasses.keys(): - storage, label, isfail = result.errorClasses[cls] - if isfail: - self.html.append(' %ss=%d' % (label, len(storage))) - self.html.append(')</span>') - else: - self.html.append('OK') - self.html.append('</div></body></html>') - f = open('tmp/test-output.html', 'w') - for l in self.html: - f.write(l) - f.close() - - def formatErr(self, err): - exctype, value, tb = err - return ''.join(traceback.format_exception(exctype, value, tb)) - - def startContext(self, ctx): - try: - n = ctx.__name__ - except AttributeError: - n = str(ctx).replace('<', '').replace('>', '') - self.html.extend(['<fieldset>', '<legend>', n, '</legend>']) - try: - path = ctx.__file__.replace('.pyc', '.py') - self.html.extend(['<div>', path, '</div>']) - except AttributeError: - pass - - def stopContext(self, ctx): - self.html.append('</fieldset>') - - def startTest(self, test): - self.html.extend([ '<div><span>', - test.shortDescription() or str(test), - '</span>' ]) - - def stopTest(self, test): - self.html.append('</div>') - |