12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- """Test Pandoc module"""
- #-----------------------------------------------------------------------------
- # Copyright (C) 2014 The IPython Development Team
- #
- # Distributed under the terms of the BSD License. The full license is in
- # the file COPYING, distributed as part of this software.
- #-----------------------------------------------------------------------------
- #-----------------------------------------------------------------------------
- # Imports
- #-----------------------------------------------------------------------------
- import os
- import warnings
- from ...tests.utils import onlyif_cmds_exist
- from nbconvert.tests.base import TestsBase
- from .. import pandoc
- #-----------------------------------------------------------------------------
- # Classes and functions
- #-----------------------------------------------------------------------------
- class TestPandoc(TestsBase):
- """Collection of Pandoc tests"""
- def __init__(self, *args, **kwargs):
- super(TestPandoc, self).__init__(*args, **kwargs)
- self.original_env = os.environ.copy()
- def setUp(self):
- super(TestPandoc, self).setUp()
- pandoc.check_pandoc_version._cached = None
- @onlyif_cmds_exist('pandoc')
- def test_pandoc_available(self):
- """ Test behaviour that pandoc functions raise PandocMissing as documented """
- pandoc.clean_cache()
- os.environ["PATH"] = ""
- with self.assertRaises(pandoc.PandocMissing):
- pandoc.get_pandoc_version()
- with self.assertRaises(pandoc.PandocMissing):
- pandoc.check_pandoc_version()
- with self.assertRaises(pandoc.PandocMissing):
- pandoc.pandoc("", "markdown", "html")
- # original_env["PATH"] should contain pandoc
- os.environ["PATH"] = self.original_env["PATH"]
- with warnings.catch_warnings(record=True) as w:
- pandoc.get_pandoc_version()
- pandoc.check_pandoc_version()
- pandoc.pandoc("", "markdown", "html")
- self.assertEqual(w, [])
- @onlyif_cmds_exist('pandoc')
- def test_minimal_version(self):
- original_minversion = pandoc._minimal_version
- pandoc._minimal_version = "120.0"
- with warnings.catch_warnings(record=True) as w:
- # call it twice to verify the cached value is used
- assert not pandoc.check_pandoc_version()
- assert not pandoc.check_pandoc_version()
- # only one warning after two calls, due to cache
- self.assertEqual(len(w), 1)
- # clear cache
- pandoc.check_pandoc_version._cached = None
- pandoc._minimal_version = pandoc.get_pandoc_version()
- assert pandoc.check_pandoc_version()
- def pandoc_function_raised_missing(f, *args, **kwargs):
- try:
- f(*args, **kwargs)
- except pandoc.PandocMissing:
- return True
- else:
- return False
|