dev-python/lxml: disable broken test-case, EAPI upgrade
authorMathy Vanvoorden <mathy@vanvoorden.be>
Tue, 11 Oct 2016 21:30:09 +0000 (23:30 +0200)
committerDavid Seifert <soap@gentoo.org>
Fri, 14 Oct 2016 21:29:23 +0000 (23:29 +0200)
There is a test-case not working because of issues in
libxml2. The patch disables the one broken test-case
until upstream can fix it.

Upstream bug: https://bugs.launchpad.net/lxml/+bug/1608479

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=592860

Package-Manager: portage-2.3.0
Closes: https://github.com/gentoo/gentoo/pull/2539

Signed-off-by: David Seifert <soap@gentoo.org>
dev-python/lxml/files/lxml-3.6.4-fix-test_xmlschema.patch [new file with mode: 0644]
dev-python/lxml/lxml-3.6.4-r1.ebuild

diff --git a/dev-python/lxml/files/lxml-3.6.4-fix-test_xmlschema.patch b/dev-python/lxml/files/lxml-3.6.4-fix-test_xmlschema.patch
new file mode 100644 (file)
index 0000000..13f963a
--- /dev/null
@@ -0,0 +1,36 @@
+diff --git a/src/lxml/tests/test_xmlschema.py b/src/lxml/tests/test_xmlschema.py
+index 26d8432..b41c097 100644
+--- a/src/lxml/tests/test_xmlschema.py
++++ b/src/lxml/tests/test_xmlschema.py
+@@ -168,31 +168,6 @@ class ETreeXMLSchemaTestCase(HelperTestCase):
+         self.assertEqual('ho', root[2].get('hardy'))
+         self.assertEqual('hey', root[3].get('hardy'))
+-    def test_xmlschema_parse_fixed_attributes(self):
+-        # does not work as of libxml2 2.7.3
+-        schema = self.parse('''
+-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+-  <xsd:element name="a" type="AType"/>
+-  <xsd:complexType name="AType">
+-    <xsd:sequence minOccurs="3" maxOccurs="3">
+-      <xsd:element name="b" type="BType" />
+-    </xsd:sequence>
+-  </xsd:complexType>
+-  <xsd:complexType name="BType">
+-    <xsd:attribute name="hardy" type="xsd:string" fixed="hey" />
+-  </xsd:complexType>
+-</xsd:schema>
+-''')
+-        schema = etree.XMLSchema(schema)
+-        parser = etree.XMLParser(schema=schema, attribute_defaults=True)
+-
+-        tree_valid = self.parse('<a><b/><b hardy="hey"/><b/></a>',
+-                                parser=parser)
+-        root = tree_valid.getroot()
+-        self.assertEqual('hey', root[0].get('hardy'))
+-        self.assertEqual('hey', root[1].get('hardy'))
+-        self.assertEqual('hey', root[2].get('hardy'))
+-
+     def test_xmlschema_stringio(self):
+         schema_file = BytesIO('''
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
index e7102f6de81b9e844f8d81253efc3ee7530bc67c..5e963ca05fc9bdd4a6a1766a4d041dc734af3a50 100644 (file)
@@ -2,9 +2,9 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
+EAPI=6
 
-PYTHON_COMPAT=( python2_7 python3_{3,4,5} )
+PYTHON_COMPAT=( python2_7 python3_{4,5} )
 
 inherit distutils-r1 eutils flag-o-matic toolchain-funcs
 
@@ -28,7 +28,15 @@ DEPEND="${RDEPEND}
 
 DISTUTILS_IN_SOURCE_BUILD=1
 
-PATCHES=( "${FILESDIR}"/${PN}-3.5.0-cross-compile.patch )
+PATCHES=(
+       "${FILESDIR}"/${PN}-3.5.0-cross-compile.patch
+
+       # This patch removes a testcase that fails because of issues
+       # in libxml2.
+       #
+       # Upstream bug: https://bugs.launchpad.net/lxml/+bug/1608479
+       "${FILESDIR}"/${PN}-3.6.4-fix-test_xmlschema.patch
+)
 
 python_prepare_all() {
        # avoid replacing PYTHONPATH in tests.
@@ -39,7 +47,7 @@ python_prepare_all() {
 
 python_compile() {
        if [[ ${EPYTHON} != python3* ]]; then
-               local CFLAGS=${CFLAGS}
+               local -x CFLAGS="${CFLAGS}"
                append-cflags -fno-strict-aliasing
        fi
        tc-export PKG_CONFIG
@@ -51,7 +59,7 @@ python_test() {
        cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
        ln -s "${S}"/doc "${BUILD_DIR}"/ || die
 
-       "${PYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}"
+       "${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}"
 }
 
 python_install_all() {
@@ -59,7 +67,10 @@ python_install_all() {
                local DOCS=( *.txt doc/*.txt )
                local HTML_DOCS=( doc/html/. )
        fi
-       use examples && local EXAMPLES=( samples/. )
+       if use examples; then
+               docinto examples
+               dodoc -r samples/.
+       fi
 
        distutils-r1_python_install_all
 }