diff --git a/tests.py b/tests.py
index a314143..99adb64 100755
--- a/tests.py
+++ b/tests.py
@@ -118,6 +118,10 @@ def assert_produces_warning(expected_warning=Warning, filter_level="always",
class TestPypandoc(unittest.TestCase):
+ # Python 2 compatibility
+ if not hasattr(unittest.TestCase, 'assertRaisesRegex'):
+ assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
+
def setUp(self):
if 'HOME' not in os.environ:
# if this is used with older versions of pandoc-citeproc
@@ -152,13 +156,15 @@ def test_does_not_convert_to_invalid_format(self):
def f():
pypandoc.convert_text("ok", format='md', to='invalid')
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, "Invalid output format! Got invalid but "):
+ f()
def test_does_not_convert_from_invalid_format(self):
def f():
pypandoc.convert_text("ok", format='invalid', to='rest')
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, 'Invalid input format! Got "invalid" but '):
+ f()
def test_basic_conversion_from_file(self):
with closed_tempfile('.md', text='# some title\n') as file_name:
@@ -245,7 +251,8 @@ def f():
pypandoc.convert_text('# some title\n', to='odf', format='md',
outputfile=None)
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, "Invalid output format! Got odf but "):
+ f()
def test_conversion_with_empty_filter(self):
# we just want to get a temp file name, where we can write to
@@ -265,7 +272,8 @@ def test_conversion_error(self):
def f():
pypandoc.convert_text('
Primary Heading
', 'md', format='html', extra_args=["--blah"])
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, 'Pandoc died with exitcode "6" during conversion: Unknown option --blah'):
+ f()
def test_unicode_input(self):
# make sure that pandoc always returns unicode and does not mishandle it
@@ -322,21 +330,24 @@ def f():
# needs an outputfile
pypandoc.convert_text('# some title\n', to='pdf', format='md')
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, "Output to pdf only works by using a outputfile"):
+ f()
# outputfile needs to end in pdf
with closed_tempfile('.WRONG') as file_name:
def f():
pypandoc.convert_text('# some title\n', to='pdf', format='md', outputfile=file_name)
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, 'PDF output needs an outputfile with ".pdf" as a fileending'):
+ f()
# no extensions allowed
with closed_tempfile('.pdf') as file_name:
def f():
pypandoc.convert_text('# some title\n', to='pdf+somethign', format='md', outputfile=file_name)
- self.assertRaises(RuntimeError, f)
+ with self.assertRaisesRegex(RuntimeError, r"PDF output can't contain any extensions: pdf\+somethign"):
+ f()
def test_get_pandoc_path(self):
result = pypandoc.get_pandoc_path()
@@ -354,7 +365,8 @@ def f(filepath):
pypandoc.convert_file(filepath, 'rst')
for filepath in files:
- self.assertRaises(RuntimeError, f, filepath)
+ with self.assertRaisesRegex(RuntimeError, "source_file is not a valid path"):
+ f(filepath)
def test_convert_text_with_existing_file(self):
with closed_tempfile('.md', text='# some title\n') as file_name: