diff --git a/0006-Fix-compatibility-issues-with-Python-3.11.patch b/0006-Fix-compatibility-issues-with-Python-3.11.patch new file mode 100644 index 0000000..0ce51ba --- /dev/null +++ b/0006-Fix-compatibility-issues-with-Python-3.11.patch @@ -0,0 +1,96 @@ +From d9a083bafaa2df338a3176ee9f1433718b3a1090 Mon Sep 17 00:00:00 2001 +From: Jiri Hnidek +Date: Wed, 11 May 2022 14:29:27 +0200 +Subject: [PATCH 06/13] Fix compatibility issues with Python 3.11 + +* Fixes: https://github.com/candlepin/python-iniparse/issues/23 +* BZ: https://bugzilla.redhat.com/show_bug.cgi?id=2019017 +* Replaced few deprecated methods with new methods +--- + tests/test_compat.py | 20 ++++++++++---------- + tests/test_fuzz.py | 2 +- + 2 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/tests/test_compat.py b/tests/test_compat.py +index ad36683..c8e6aca 100644 +--- a/tests/test_compat.py ++++ b/tests/test_compat.py +@@ -96,16 +96,16 @@ class TestCaseBase(unittest.TestCase): + eq(cf.get('Spaces', 'key with spaces'), 'value') + eq(cf.get('Spaces', 'another with spaces'), 'splat!') + +- self.failIf('__name__' in cf.options("Foo Bar"), ++ self.assertFalse('__name__' in cf.options("Foo Bar"), + '__name__ "option" should not be exposed by the API!') + + # Make sure the right things happen for remove_option(); + # added to include check for SourceForge bug #123324: +- self.failUnless(cf.remove_option('Foo Bar', 'foo'), ++ self.assertTrue(cf.remove_option('Foo Bar', 'foo'), + "remove_option() failed to report existance of option") +- self.failIf(cf.has_option('Foo Bar', 'foo'), ++ self.assertFalse(cf.has_option('Foo Bar', 'foo'), + "remove_option() failed to remove option") +- self.failIf(cf.remove_option('Foo Bar', 'foo'), ++ self.assertFalse(cf.remove_option('Foo Bar', 'foo'), + "remove_option() failed to report non-existance of option" + " that was removed") + +@@ -127,10 +127,10 @@ class TestCaseBase(unittest.TestCase): + eq(cf.options("a"), ["b"]) + eq(cf.get("a", "b"), "value", + "could not locate option, expecting case-insensitive option names") +- self.failUnless(cf.has_option("a", "b")) ++ self.assertTrue(cf.has_option("a", "b")) + cf.set("A", "A-B", "A-B value") + for opt in ("a-b", "A-b", "a-B", "A-B"): +- self.failUnless( ++ self.assertTrue( + cf.has_option("A", opt), + "has_option() returned false for option which should exist") + eq(cf.options("A"), ["a-b"]) +@@ -147,7 +147,7 @@ class TestCaseBase(unittest.TestCase): + # SF bug #561822: + cf = self.fromstring("[section]\nnekey=nevalue\n", + defaults={"key":"value"}) +- self.failUnless(cf.has_option("section", "Key")) ++ self.assertTrue(cf.has_option("section", "Key")) + + def test_default_case_sensitivity(self): + cf = self.newconfig({"foo": "Bar"}) +@@ -182,7 +182,7 @@ class TestCaseBase(unittest.TestCase): + cf = self.newconfig() + self.assertEqual(cf.sections(), [], + "new ConfigParser should have no defined sections") +- self.failIf(cf.has_section("Foo"), ++ self.assertFalse(cf.has_section("Foo"), + "new ConfigParser should have no acknowledged sections") + self.assertRaises(ConfigParser.NoSectionError, + cf.options, "Foo") +@@ -221,8 +221,8 @@ class TestCaseBase(unittest.TestCase): + "E5=FALSE AND MORE" + ) + for x in range(1, 5): +- self.failUnless(cf.getboolean('BOOLTEST', 't%d' % x)) +- self.failIf(cf.getboolean('BOOLTEST', 'f%d' % x)) ++ self.assertTrue(cf.getboolean('BOOLTEST', 't%d' % x)) ++ self.assertFalse(cf.getboolean('BOOLTEST', 'f%d' % x)) + self.assertRaises(ValueError, + cf.getboolean, 'BOOLTEST', 'e%d' % x) + +diff --git a/tests/test_fuzz.py b/tests/test_fuzz.py +index df568bb..874ef2e 100644 +--- a/tests/test_fuzz.py ++++ b/tests/test_fuzz.py +@@ -102,7 +102,7 @@ class TestFuzz(unittest.TestCase): + cc = compat.RawConfigParser() + cc.readfp(StringIO(s)) + cc_py = configparser.RawConfigParser() +- cc_py.readfp(StringIO(s)) ++ cc_py.read_file(StringIO(s)) + # compare the two configparsers + self.assertEqualConfig(cc_py, cc) + # check that tidy does not change semantics +-- +2.41.0 + diff --git a/python-iniparse.spec b/python-iniparse.spec index 9651a89..91867b6 100644 --- a/python-iniparse.spec +++ b/python-iniparse.spec @@ -14,6 +14,8 @@ Summary: Accessing and Modifying INI files License: MIT and Python URL: https://github.com/candlepin/python-iniparse Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +# https://github.com/candlepin/python-iniparse/pull/24 +Patch6: 0006-Fix-compatibility-issues-with-Python-3.11.patch BuildArch: noarch @@ -36,7 +38,7 @@ Summary: %{summary} %{_description} %prep -%autosetup +%autosetup -p1 chmod -c -x html/index.html %generate_buildrequires @@ -60,6 +62,7 @@ rm -vfr %{buildroot}%{_docdir}/* %changelog * Wed Jun 14 2023 Python Maint - 0.5-5 - Rebuilt for Python 3.12 +- Fixes: rhbz#2176142 * Fri Jan 20 2023 Fedora Release Engineering - 0.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild