salimma / rpms / rpmlint

Forked from rpms/rpmlint 4 years ago
Clone
Blob Blame History Raw
From 4875475c43098e37a4d5d4e2ee2f9dfea643cc78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
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()