summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZamarin Arthur <arthurzam@gmail.com>2021-05-18 12:17:13 +0300
committerMichał Górny <mgorny@gentoo.org>2021-05-18 11:30:57 +0200
commit26e0302cb9b4d2dacf43874dd1b5150fe2ca5f58 (patch)
tree5fa8326621b79bd4cf4a0d509c712a07f3e024f6
parentdev-python/html2text: bump to python 3.10 (diff)
downloadgentoo-26e0302cb9b4d2dacf43874dd1b5150fe2ca5f58.tar.gz
gentoo-26e0302cb9b4d2dacf43874dd1b5150fe2ca5f58.tar.bz2
gentoo-26e0302cb9b4d2dacf43874dd1b5150fe2ca5f58.zip
dev-python/css-parser: add 1.0.6, py3.10
- passes tests when using FEATURES="-network-sandbox" - adding chardet dependency removes warning during tests Signed-off-by: Zamarin Arthur <arthurzam@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/20818 Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--dev-python/css-parser/Manifest1
-rw-r--r--dev-python/css-parser/css-parser-1.0.6.ebuild26
-rw-r--r--dev-python/css-parser/files/css-parser-1.0.6-fix-py3.10-test.patch141
3 files changed, 168 insertions, 0 deletions
diff --git a/dev-python/css-parser/Manifest b/dev-python/css-parser/Manifest
index 6cb95949e812..610aec31c950 100644
--- a/dev-python/css-parser/Manifest
+++ b/dev-python/css-parser/Manifest
@@ -1 +1,2 @@
DIST css-parser-1.0.4.tar.gz 143977 BLAKE2B 94a42d751a90d306b0dd2d503d8d9c326509b438d1f52b5567e6f6db7d80e7a6d2c37cbfa0db79225cc4d0fd5df612b3e430fa1c62604a2f8990d20678019af0 SHA512 3781128e55c1e72aa00369873e214f683e3f42944ae83d399697adb7d2966f68fb500c39982845ce9cd06078e4021838d82b06f99d90938069371da8a89a0857
+DIST css-parser-1.0.6.tar.gz 336932 BLAKE2B 00cfc4597137c0aa6af3cc8a72fa3e59a1d7b83210668c8421c0703a4a38d05d73f691ff00ffac14025f021a10f85c1d3697778794d23f75db381f5e63e24b7d SHA512 4c623541e1145c91458e7e2028f6a0de652ae2189dc99672fc72f098799d6349edb051bafc0901258481fa3422346303d2ef634392889ee83a29814609cdbd43
diff --git a/dev-python/css-parser/css-parser-1.0.6.ebuild b/dev-python/css-parser/css-parser-1.0.6.ebuild
new file mode 100644
index 000000000000..ccc51564195c
--- /dev/null
+++ b/dev-python/css-parser/css-parser-1.0.6.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..10} )
+
+inherit distutils-r1
+
+DESCRIPTION="A CSS Cascading Style Sheets library (fork of cssutils)"
+HOMEPAGE="https://pypi.org/project/css-parser/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( dev-python/chardet[${PYTHON_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-py3.10-test.patch"
+)
+
+distutils_enable_tests setup.py
diff --git a/dev-python/css-parser/files/css-parser-1.0.6-fix-py3.10-test.patch b/dev-python/css-parser/files/css-parser-1.0.6-fix-py3.10-test.patch
new file mode 100644
index 000000000000..9107adefed56
--- /dev/null
+++ b/dev-python/css-parser/files/css-parser-1.0.6-fix-py3.10-test.patch
@@ -0,0 +1,141 @@
+diff --git a/css_parser_tests/basetest.py b/css_parser_tests/basetest.py
+index 2b26906..115053f 100644
+--- a/css_parser_tests/basetest.py
++++ b/css_parser_tests/basetest.py
+@@ -149,21 +149,7 @@ class BaseTestCase(unittest.TestCase):
+ else:
+ self.fail("%s did not raise %s" % (callsig, exception))
+
+- def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs):
+- """
+- Just like unittest.TestCase.assertRaises,
+- but checks that the message is right too.
+-
+- Usage::
+-
+- self.assertRaisesMsg(
+- MyException, "Exception message",
+- my_function, (arg1, arg2)
+- )
+-
+- from
+- http://www.nedbatchelder.com/blog/200609.html#e20060905T064418
+- """
++ def _assertRaisesMsgSubstring(self, excClass, msg, substring_match, callableObj, *args, **kwargs):
+ try:
+ callableObj(*args, **kwargs)
+ except excClass as exc:
+@@ -171,7 +157,7 @@ class BaseTestCase(unittest.TestCase):
+ if not msg:
+ # No message provided: any message is fine.
+ return
+- elif excMsg == msg:
++ elif (msg in excMsg if substring_match else msg == excMsg):
+ # Message provided, and we got the right message: passes.
+ return
+ else:
+@@ -189,6 +175,29 @@ class BaseTestCase(unittest.TestCase):
+ excName
+ )
+
++ def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs):
++ """
++ Just like unittest.TestCase.assertRaises,
++ but checks that the message is right too.
++
++ Usage::
++
++ self.assertRaisesMsg(
++ MyException, "Exception message",
++ my_function, arg1, arg2,
++ kwarg1=val, kwarg2=val)
++
++ from
++ http://www.nedbatchelder.com/blog/200609.html#e20060905T064418
++ """
++ return self._assertRaisesMsgSubstring(excClass, msg, False, callableObj, *args, **kwargs)
++
++ def assertRaisesMsgSubstring(self, excClass, msg, callableObj, *args, **kwargs):
++ """
++ Just like assertRaisesMsg, but looks for substring in the message.
++ """
++ return self._assertRaisesMsgSubstring(excClass, msg, True, callableObj, *args, **kwargs)
++
+ def do_equal_p(self, tests, att='cssText', debug=False, raising=True):
+ """
+ if raising self.p is used for parsing, else self.pf
+diff --git a/css_parser_tests/test_property.py b/css_parser_tests/test_property.py
+index ae6ab2a..561a5eb 100644
+--- a/css_parser_tests/test_property.py
++++ b/css_parser_tests/test_property.py
+@@ -162,8 +162,8 @@ class PropertyTestCase(basetest.BaseTestCase):
+ "Property.literalname"
+ p = css_parser.css.property.Property(r'c\olor', 'red')
+ self.assertEqual(r'c\olor', p.literalname)
+- self.assertRaisesMsg(AttributeError, "can't set attribute", p.__setattr__,
+- 'literalname', 'color')
++ self.assertRaisesMsgSubstring(AttributeError, "can't set attribute", p.__setattr__,
++ 'literalname', 'color')
+
+ def test_validate(self):
+ "Property.valid"
+diff --git a/css_parser_tests/test_selector.py b/css_parser_tests/test_selector.py
+index c0c769e..f2746d8 100644
+--- a/css_parser_tests/test_selector.py
++++ b/css_parser_tests/test_selector.py
+@@ -412,7 +412,7 @@ class SelectorTestCase(basetest.BaseTestCase):
+
+ # readonly
+ def _set(): selector.specificity = 1
+- self.assertRaisesMsg(AttributeError, "can't set attribute", _set)
++ self.assertRaisesMsgSubstring(AttributeError, "can't set attribute", _set)
+
+ tests = {
+ '*': (0, 0, 0, 0),
+diff --git a/css_parser_tests/test_selectorlist.py b/css_parser_tests/test_selectorlist.py
+index 7028fe7..54c945a 100644
+--- a/css_parser_tests/test_selectorlist.py
++++ b/css_parser_tests/test_selectorlist.py
+@@ -11,6 +11,7 @@ from css_parser.css.selectorlist import SelectorList
+ class SelectorListTestCase(basetest.BaseTestCase):
+
+ def setUp(self):
++ basetest.BaseTestCase.setUp(self)
+ self.r = SelectorList()
+
+ def test_init(self):
+diff --git a/run_tests.py b/run_tests.py
+index 554c752..6507434 100755
+--- a/run_tests.py
++++ b/run_tests.py
+@@ -1,10 +1,12 @@
+ #!/usr/bin/env python
+ # vim:fileencoding=utf-8
+-# License: Apache 2.0 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net>
++# License: LGPLv3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net>
+
+-from __future__ import absolute_import, division, print_function, unicode_literals
++from __future__ import (absolute_import, division, print_function,
++ unicode_literals)
+
+ import importlib
++import logging
+ import os
+ import sys
+ import unittest
+@@ -72,6 +74,7 @@ def find_tests():
+
+ def run_tests(test_names=()):
+ sys.path = [base, os.path.join(base, 'src')] + sys.path
++ import css_parser
+ tests = find_tests()
+ suites = []
+ for name in test_names:
+@@ -85,6 +88,7 @@ def run_tests(test_names=()):
+ tests = unittest.TestSuite(suites) if suites else tests
+
+ r = unittest.TextTestRunner
++ css_parser.log.setLevel(logging.CRITICAL)
+ result = r().run(tests)
+
+ if not result.wasSuccessful():