From 4875475c43098e37a4d5d4e2ee2f9dfea643cc78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 7 Apr 2017 09:26:35 +0300 Subject: [PATCH] Pkg.b2s: Pass through str as-is on Python 3 Things change, and we may start getting str where we previously got bytes, such as what has apparently now happened with some versions of the return value of magic.descriptor(fd) in Fedora Rawhide. https://bugzilla.redhat.com/show_bug.cgi?id=1439941 --- Pkg.py | 4 ++-- test/test.Pkg.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) Index: rpmlint-rpmlint-1.9/Pkg.py =================================================================== --- rpmlint-rpmlint-1.9.orig/Pkg.py +++ rpmlint-rpmlint-1.9/Pkg.py @@ -41,8 +41,8 @@ if sys.version_info[0] > 2: unicode = str def b2s(b): - if b is None: - return None + if b is None or isinstance(b, str): + return b if isinstance(b, (list, tuple)): return [b2s(x) for x in b] return b.decode(errors='replace') Index: rpmlint-rpmlint-1.9/test/test.Pkg.py =================================================================== --- rpmlint-rpmlint-1.9.orig/test/test.Pkg.py +++ rpmlint-rpmlint-1.9/test/test.Pkg.py @@ -30,5 +30,10 @@ class TestPkg(unittest.TestCase): ): self.assertFalse(Pkg.rangeCompare(req, prov)) + def test_b2s(self): + for thing in ("foo", ["foo"]): + self.assertEqual(thing, Pkg.b2s(thing)) + + if __name__ == '__main__': unittest.main()