diff options
Diffstat (limited to 'tests/base.py')
-rw-r--r-- | tests/base.py | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/tests/base.py b/tests/base.py deleted file mode 100644 index 9e70996..0000000 --- a/tests/base.py +++ /dev/null @@ -1,62 +0,0 @@ -import os, codecs -import markdown -from nose.tools import assert_equal -import difflib -from plugins import MdSyntaxError - -class SyntaxBase: - """ - Generator that steps through all files in a dir and runs each text file - (*.txt) as a seperate unit test. - - Each subclass of SyntaxBase should define `dir` as a string containing the - name of the directory which holds the test files. For example: - - dir = "path/to/mytests" - - A subclass may redefine the `setUp` method to create a custom `Markdown` - instance specific to that batch of tests. - - """ - - dir = "" - - def __init__(self): - self.files = [x.replace(".txt", "") - for x in os.listdir(self.dir) if x.endswith(".txt")] - - def setUp(self): - """ - Create Markdown instance. - - Override this method to create a custom `Markdown` instance assigned to - `self.md`. For example: - - self.md = markdown.Markdown(extensions=["footnotes"], safe_mode="replace") - - """ - self.md = markdown.Markdown() - - def tearDown(self): - """ tearDown is not implemented. """ - pass - - def test_syntax(self): - for file in self.files: - yield self.check_syntax, file - - def check_syntax(self, file): - input_file = os.path.join(self.dir, file + ".txt") - input = codecs.open(input_file, encoding="utf-8").read() - output_file = os.path.join(self.dir, file + ".html") - expected_output = codecs.open(output_file, encoding="utf-8").read() - output = self.normalize(self.md.convert(input)) - diff = [l for l in difflib.unified_diff(self.normalize(expected_output), - output, output_file, - 'actual_output.html', n=3)] - if diff: - #assert False, - raise MdSyntaxError('Output from "%s" failed to match expected output.\n\n%s' % (input_file, ''.join(diff))) - - def normalize(self, text): - return ['%s\n' % l for l in text.strip().split('\n')] |