From b6a9a8333b285e9781d290187c69b5667f428579 Mon Sep 17 00:00:00 2001 From: Deniz Turgut Date: Sat, 28 Oct 2023 14:49:55 +0300 Subject: [PATCH] skip tests that require git if git is not installed and minor tweaks to subprocess handling --- pelican/tests/support.py | 3 ++- pelican/tests/test_pelican.py | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pelican/tests/support.py b/pelican/tests/support.py index 8a394395..720e4d0e 100644 --- a/pelican/tests/support.py +++ b/pelican/tests/support.py @@ -231,7 +231,8 @@ def diff_subproc(first, second): ['git', '--no-pager', 'diff', '--no-ext-diff', '--exit-code', '-w', first, second], stdout=subprocess.PIPE, - stderr=subprocess.PIPE + stderr=subprocess.PIPE, + text=True, ) diff --git a/pelican/tests/test_pelican.py b/pelican/tests/test_pelican.py index adba32e0..885c2138 100644 --- a/pelican/tests/test_pelican.py +++ b/pelican/tests/test_pelican.py @@ -15,7 +15,8 @@ from pelican.tests.support import ( LoggedTestCase, diff_subproc, locale_available, - mute + mute, + skipIfNoExecutable, ) CURRENT_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -69,7 +70,8 @@ class TestPelican(LoggedTestCase): if proc.returncode != 0: msg = self._formatMessage( msg, - "%s and %s differ:\n%s" % (left_path, right_path, err) + "%s and %s differ:\nstdout:\n%s\nstderr\n%s" % + (left_path, right_path, out, err) ) raise self.failureException(msg) @@ -88,6 +90,7 @@ class TestPelican(LoggedTestCase): generator_classes, Sequence, "_get_generator_classes() must return a Sequence to preserve order") + @skipIfNoExecutable(['git', '--version']) def test_basic_generation_works(self): # when running pelican without settings, it should pick up the default # ones and generate correct output without raising any exception @@ -107,6 +110,7 @@ class TestPelican(LoggedTestCase): msg="Unable to find.*skipping url replacement", level=logging.WARNING) + @skipIfNoExecutable(['git', '--version']) def test_custom_generation_works(self): # the same thing with a specified set of settings should work settings = read_settings(path=SAMPLE_CONFIG, override={ @@ -121,6 +125,7 @@ class TestPelican(LoggedTestCase): self.temp_path, os.path.join(OUTPUT_PATH, 'custom') ) + @skipIfNoExecutable(['git', '--version']) @unittest.skipUnless(locale_available('fr_FR.UTF-8') or locale_available('French'), 'French locale needed') def test_custom_locale_generation_works(self):