python3Packages.pypandoc: vendor patches, test w/o pandoc-citeproc
* Translate all seds in postPatch into patches (for setting the static path and skipping the test that needs network access) * The patch for the changed pandoc heading generation was simplified: Since we know our pandoc version is always that new, we can skip the version check. * Skip the test for pandoc-citeproc: pandoc-citeproc has been deprecated in favor of pandoc --citeproc by the upstream pandoc developer. pypandoc's testsuite doesn't reflect this yet (although it should support --citeproc theoretically) to avoid depending on pandoc-citeproc for the checkPhase (as we expect it to break again or continue to be broken) we skip the test requiring pandoc-citeproc. The breakage of pypandoc due to pandoc-citeproc was pointed out here: https://github.com/NixOS/nixpkgs/pull/116635#issuecomment-809258707 Thank you!
This commit is contained in:
parent
f0ceaf880e
commit
27077f1149
@ -1,5 +1,6 @@
|
||||
{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch
|
||||
, pandoc, haskellPackages, texlive }:
|
||||
{ lib, substituteAll, buildPythonPackage, fetchFromGitHub
|
||||
, pandoc, texlive
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypandoc";
|
||||
@ -12,25 +13,18 @@ buildPythonPackage rec {
|
||||
sha256 = "1lpslfns6zxx7b0xr13bzg921lwrj5am8za0b2dviywk6iiib0ld";
|
||||
};
|
||||
|
||||
# https://github.com/bebraw/pypandoc/pull/204
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/sternenseemann/pypandoc/commit/e422e277dd667c77dae11fad931dbb6015e9a784.patch";
|
||||
sha256 = "11l11kh2a4k0h1g4yvijb60076kzxlkrvda3x6dc1s8fz352bpg3";
|
||||
(substituteAll {
|
||||
src = ./static-pandoc-path.patch;
|
||||
pandoc = "${lib.getBin pandoc}/bin/pandoc";
|
||||
})
|
||||
./skip-tests.patch
|
||||
./new-pandoc-headings.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# set pandoc path statically
|
||||
sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py
|
||||
|
||||
# Skip test that requires network access
|
||||
sed -i '/test_basic_conversion_from_http_url/i\\ @unittest.skip\("no network access during checkPhase"\)' tests.py
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
export PATH="${haskellPackages.pandoc-citeproc}/bin:${texlive.combined.scheme-small}/bin:$PATH"
|
||||
'';
|
||||
checkInputs = [
|
||||
texlive.combined.scheme-small
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Thin wrapper for pandoc";
|
||||
|
@ -0,0 +1,22 @@
|
||||
diff --git a/tests.py b/tests.py
|
||||
index aede281..c400888 100755
|
||||
--- a/tests.py
|
||||
+++ b/tests.py
|
||||
@@ -295,7 +295,7 @@ class TestPypandoc(unittest.TestCase):
|
||||
|
||||
def test_unicode_input(self):
|
||||
# make sure that pandoc always returns unicode and does not mishandle it
|
||||
- expected = u'üäöîôû{0}======{0}{0}'.format(os.linesep)
|
||||
+ expected = u'# üäöîôû'.format(os.linesep)
|
||||
written = pypandoc.convert_text(u'<h1>üäöîôû</h1>', 'md', format='html')
|
||||
self.assertTrue(isinstance(written, unicode_type))
|
||||
self.assertEqualExceptForNewlineEnd(expected, written)
|
||||
@@ -305,7 +305,7 @@ class TestPypandoc(unittest.TestCase):
|
||||
self.assertTrue(isinstance(written, unicode_type))
|
||||
|
||||
# Only use german umlauts in th next test, as iso-8859-15 covers that
|
||||
- expected = u'üäö€{0}===={0}{0}'.format(os.linesep)
|
||||
+ expected = u'# üäö€'.format(os.linesep)
|
||||
bytes = u'<h1>üäö€</h1>'.encode("iso-8859-15")
|
||||
|
||||
# Without encoding, this fails as we expect utf-8 per default
|
20
pkgs/development/python-modules/pypandoc/skip-tests.patch
Normal file
20
pkgs/development/python-modules/pypandoc/skip-tests.patch
Normal file
@ -0,0 +1,20 @@
|
||||
diff --git a/tests.py b/tests.py
|
||||
index deb50e0..aede281 100755
|
||||
--- a/tests.py
|
||||
+++ b/tests.py
|
||||
@@ -179,6 +179,7 @@ class TestPypandoc(unittest.TestCase):
|
||||
received = pypandoc.convert_file(file_url, 'rst')
|
||||
self.assertEqualExceptForNewlineEnd(expected, received)
|
||||
|
||||
+ @unittest.skip("no network access during checkPhase")
|
||||
def test_basic_conversion_from_http_url(self):
|
||||
url = 'https://raw.githubusercontent.com/bebraw/pypandoc/master/README.md'
|
||||
received = pypandoc.convert_file(url, 'html')
|
||||
@@ -247,6 +248,7 @@ class TestPypandoc(unittest.TestCase):
|
||||
|
||||
self.assertRaises(RuntimeError, f)
|
||||
|
||||
+ @unittest.skip("pandoc-citeproc has been deprecated")
|
||||
def test_conversion_with_citeproc_filter(self):
|
||||
# we just want to get a temp file name, where we can write to
|
||||
filters = ['pandoc-citeproc']
|
@ -0,0 +1,10 @@
|
||||
diff --git a/pypandoc/__init__.py b/pypandoc/__init__.py
|
||||
index 6d5b79b..65437aa 100644
|
||||
--- a/pypandoc/__init__.py
|
||||
+++ b/pypandoc/__init__.py
|
||||
@@ -582,4 +582,4 @@ def clean_pandocpath_cache():
|
||||
|
||||
|
||||
__version = None
|
||||
-__pandoc_path = None
|
||||
+__pandoc_path = "@pandoc@"
|
Loading…
Reference in New Issue
Block a user