refactor the check of executable for unit tests

pandoc was checked directly with a `os.system` call, and the output with version
and copyright of pandoc was displayed when running tests.

- replace the pandoc check with the `skipIfNoExecutable` function.
- in `skipIfNoExecutable`, the `valid_exit_code` is not needed, the executable
  is not found if an `OSError` exception is catched.
This commit is contained in:
Simon 2012-10-25 22:43:58 +02:00
commit ae8cf9defd
2 changed files with 10 additions and 13 deletions

View file

@ -3,25 +3,24 @@
import os
from pelican.tools.pelican_import import wp2fields, fields2pelican
from .support import unittest, temporary_folder, mute
from .support import unittest, temporary_folder, mute, skipIfNoExecutable
CUR_DIR = os.path.dirname(__file__)
WORDPRESS_XML_SAMPLE = os.path.join(CUR_DIR, 'content', 'wordpressexport.xml')
PANDOC = os.system('pandoc --version') == 0
try:
import BeautifulSoup
except ImportError:
BeautifulSoup = False # NOQA
@skipIfNoExecutable(['pandoc', '--version'])
@unittest.skipUnless(BeautifulSoup, 'Needs BeautifulSoup module')
class TestWordpressXmlImporter(unittest.TestCase):
def setUp(self):
self.posts = wp2fields(WORDPRESS_XML_SAMPLE)
@unittest.skipUnless(PANDOC and BeautifulSoup,
'Needs Pandoc and BeautifulSoup')
def test_ignore_empty_posts(self):
posts = list(self.posts)
@ -29,8 +28,6 @@ class TestWordpressXmlImporter(unittest.TestCase):
for title, content, fname, date, author, categ, tags, format in posts:
self.assertTrue(title.strip())
@unittest.skipUnless(PANDOC and BeautifulSoup,
'Needs Pandoc and BeautifulSoup')
def test_can_toggle_raw_html_code_parsing(self):
posts = list(self.posts)