test_pandoc.py
62 lines
| 2.4 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 | ||||
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"] = "" | ||
Daniel B. Vasquez
|
r14768 | assert pandoc_function_raised_missing(pandoc.get_pandoc_version) == True | ||
assert pandoc_function_raised_missing(pandoc.check_pandoc_version) == True | ||||
assert pandoc_function_raised_missing(pandoc.pandoc, "", "markdown", "html") == True | ||||
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"] | ||
Daniel B. Vasquez
|
r14768 | assert pandoc_function_raised_missing(pandoc.get_pandoc_version) == False | ||
assert pandoc_function_raised_missing(pandoc.check_pandoc_version) == False | ||||
assert pandoc_function_raised_missing(pandoc.pandoc, "", "markdown", "html") == False | ||||
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 | ||
Daniel B. Vasquez
|
r14766 | |||
Daniel B. Vasquez
|
r14768 | pandoc._minimal_version = "120.0" | ||
Daniel B. Vasquez
|
r14766 | assert not pandoc.check_pandoc_version() | ||
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 | ||||