summaryrefslogtreecommitdiff
path: root/test/spec_tests.py
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2014-12-22 23:00:10 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2014-12-22 23:00:10 -0700
commit9d4174f7f047aad9e4ab7768ce55e84446df7569 (patch)
tree5edb31cf540ab825d96601b46c939d1b6b0ca1ef /test/spec_tests.py
parentb28c97c9b8af266d4f12deb5febcf28807d9f5c6 (diff)
parent46633b1f00204a310e630009f0420218186439e2 (diff)
Merge pull request #250 from cirosantilli/deal-invalid-unicode
Don't raise exception on invalid UTF-8 output
Diffstat (limited to 'test/spec_tests.py')
-rwxr-xr-xtest/spec_tests.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/test/spec_tests.py b/test/spec_tests.py
index 23ae502..99ac0dd 100755
--- a/test/spec_tests.py
+++ b/test/spec_tests.py
@@ -37,8 +37,13 @@ def do_test(test, normalize):
[retcode, actual_html, err] = cmark.to_html(test['markdown'])
if retcode == 0:
expected_html = test['html']
+ unicode_error = None
if normalize:
- passed = normalize_html(actual_html) == normalize_html(expected_html)
+ try:
+ passed = normalize_html(actual_html) == normalize_html(expected_html)
+ except UnicodeDecodeError, e:
+ unicode_error = e
+ passed = False
else:
passed = actual_html == expected_html
if passed:
@@ -46,11 +51,16 @@ def do_test(test, normalize):
else:
print_test_header(test['section'], test['example'], test['start_line'], test['end_line'])
sys.stdout.write(test['markdown'])
- expected_html_lines = expected_html.splitlines(True)
- actual_html_lines = actual_html.splitlines(True)
- for diffline in unified_diff(expected_html_lines, actual_html_lines,
- "expected HTML", "actual HTML"):
- sys.stdout.write(diffline)
+ if unicode_error:
+ print "Unicode error: " + str(unicode_error)
+ print repr(expected_html)
+ print repr(actual_html)
+ else:
+ expected_html_lines = expected_html.splitlines(True)
+ actual_html_lines = actual_html.splitlines(True)
+ for diffline in unified_diff(expected_html_lines, actual_html_lines,
+ "expected HTML", "actual HTML"):
+ sys.stdout.write(diffline)
sys.stdout.write('\n')
return 'fail'
else: