test_pandoc.py
70 lines
| 2.5 KiB
| text/x-python
|
PythonLexer
Daniel B. Vasquez
|
r14766 | """Test Pandoc module""" | ||
#----------------------------------------------------------------------------- | ||||
Jonathan Frederic
|
r14823 | # Copyright (C) 2014 The IPython Development Team | ||
Daniel B. Vasquez
|
r14766 | # | ||
# 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 | ||||
MinRK
|
r15441 | import warnings | ||
Daniel B. Vasquez
|
r14766 | |||
from IPython.testing import decorators as dec | ||||
Daniel B. Vasquez
|
r14830 | from IPython.nbconvert.tests.base import TestsBase | ||
from .. import pandoc | ||||
Daniel B. Vasquez
|
r14766 | |||
#----------------------------------------------------------------------------- | ||||
# 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() | ||||
@dec.onlyif_cmds_exist('pandoc') | ||||
def test_pandoc_available(self): | ||||
Daniel B. Vasquez
|
r14768 | """ Test behaviour that pandoc functions raise PandocMissing as documented """ | ||
pandoc.clean_cache() | ||||
Daniel B. Vasquez
|
r14766 | os.environ["PATH"] = "" | ||
MinRK
|
r15441 | 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") | ||||
Daniel B. Vasquez
|
r14766 | |||
Daniel B. Vasquez
|
r14768 | # original_env["PATH"] should contain pandoc | ||
Daniel B. Vasquez
|
r14766 | os.environ["PATH"] = self.original_env["PATH"] | ||
MinRK
|
r15445 | with warnings.catch_warnings(record=True) as w: | ||
MinRK
|
r15441 | pandoc.get_pandoc_version() | ||
pandoc.check_pandoc_version() | ||||
pandoc.pandoc("", "markdown", "html") | ||||
self.assertEqual(w, []) | ||||
Daniel B. Vasquez
|
r14766 | |||
Jonathan Frederic
|
r14823 | @dec.onlyif_cmds_exist('pandoc') | ||
Daniel B. Vasquez
|
r14766 | def test_minimal_version(self): | ||
Daniel B. Vasquez
|
r14768 | original_minversion = pandoc._minimal_version | ||
MinRK
|
r15441 | |||
Daniel B. Vasquez
|
r14768 | pandoc._minimal_version = "120.0" | ||
MinRK
|
r15445 | with warnings.catch_warnings(record=True) as w: | ||
MinRK
|
r15441 | assert not pandoc.check_pandoc_version() | ||
self.assertEqual(len(w), 1) | ||||
Daniel B. Vasquez
|
r14766 | |||
Daniel B. Vasquez
|
r14768 | pandoc._minimal_version = pandoc.get_pandoc_version() | ||
Daniel B. Vasquez
|
r14766 | assert pandoc.check_pandoc_version() | ||
Daniel B. Vasquez
|
r14768 | |||
def pandoc_function_raised_missing(f, *args, **kwargs): | ||||
try: | ||||
f(*args, **kwargs) | ||||
Daniel B. Vasquez
|
r14769 | except pandoc.PandocMissing: | ||
Daniel B. Vasquez
|
r14768 | return True | ||
else: | ||||
return False | ||||