[python-debian/master 01/36] Fix test warnings with python2.7 -3.

Colin Watson cjwatson at canonical.com
Mon Oct 8 07:41:19 UTC 2012


---
 lib/debian/deb822.py         |   16 ++++++++++------
 lib/debian/debian_support.py |    5 +----
 lib/debian/debtags.py        |   20 ++++++++++----------
 tests/test_debian_support.py |    2 +-
 4 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/lib/debian/deb822.py b/lib/debian/deb822.py
index 4c5b74e..0d0be2c 100644
--- a/lib/debian/deb822.py
+++ b/lib/debian/deb822.py
@@ -169,7 +169,7 @@ class Deb822Dict(object, UserDict.DictMixin):
             if _fields is None:
                 self.__keys.extend([ _strI(k) for k in self.__parsed.keys() ])
             else:
-                self.__keys.extend([ _strI(f) for f in _fields if self.__parsed.has_key(f) ])
+                self.__keys.extend([ _strI(f) for f in _fields if f in self.__parsed ])
         
     ### BEGIN DictMixin methods
 
@@ -221,7 +221,7 @@ class Deb822Dict(object, UserDict.DictMixin):
             # only been in the self.__parsed dict.
             pass
 
-    def has_key(self, key):
+    def __contains__(self, key):
         key = _strI(key)
         return key in self.__keys
     
@@ -246,6 +246,10 @@ class Deb822Dict(object, UserDict.DictMixin):
         # If we got here, everything matched
         return True
 
+    # Overriding __eq__ blocks inheritance of __hash__ in Python 3, and
+    # instances of this class are not sensibly hashable anyway.
+    __hash__ = None
+
     def copy(self):
         # Use self.__class__ so this works as expected for subclasses
         copy = self.__class__(self)
@@ -665,7 +669,7 @@ class GpgInfo(dict):
 
     def valid(self):
         """Is the signature valid?"""
-        return self.has_key('GOODSIG') or self.has_key('VALIDSIG')
+        return 'GOODSIG' in self or 'VALIDSIG' in self
     
 # XXX implement as a property?
 # XXX handle utf-8 %-encoding
@@ -846,9 +850,9 @@ class PkgRelation(object):
 
         def pp_atomic_dep(dep):
             s = dep['name']
-            if dep.has_key('version') and dep['version'] is not None:
+            if dep.get('version') is not None:
                 s += ' (%s %s)' % dep['version']
-            if dep.has_key('arch') and dep['arch'] is not None:
+            if dep.get('arch') is not None:
                 s += ' [%s]' % string.join(map(pp_arch, dep['arch']))
             return s
 
@@ -894,7 +898,7 @@ class _PkgRelationMixin(object):
             # name) of Deb822 objects on the dictionary returned by the
             # relations property.
             keyname = name.lower()
-            if self.has_key(name):
+            if name in self:
                 self.__relations[keyname] = None   # lazy value
                     # all lazy values will be expanded before setting
                     # __parsed_relations to True
diff --git a/lib/debian/debian_support.py b/lib/debian/debian_support.py
index d9ce24a..f0577ac 100644
--- a/lib/debian/debian_support.py
+++ b/lib/debian/debian_support.py
@@ -358,10 +358,7 @@ def list_releases():
 listReleases = function_deprecated_by(list_releases)
 
 def intern_release(name, releases=list_releases()):
-    if releases.has_key(name):
-        return releases[name]
-    else:
-        return None
+    return releases.get(name)
 
 internRelease = function_deprecated_by(intern_release)
 
diff --git a/lib/debian/debtags.py b/lib/debian/debtags.py
index cc44f14..526394d 100644
--- a/lib/debian/debtags.py
+++ b/lib/debian/debtags.py
@@ -51,7 +51,7 @@ def read_tag_database_reversed(input):
 	for pkgs, tags in parse_tags(input):
 		# Create the tag set using the native set
 		for tag in tags:
-			if db.has_key(tag):
+			if tag in db:
 				db[tag] |= pkgs
 			else:
 				db[tag] = pkgs.copy()
@@ -72,7 +72,7 @@ def read_tag_database_both_ways(input, tag_filter = None):
 		for pkg in pkgs:
 			db[pkg] = tags.copy()
 		for tag in tags:
-			if dbr.has_key(tag):
+			if tag in dbr:
 				dbr[tag] |= pkgs
 			else:
 				dbr[tag] = pkgs.copy()
@@ -85,7 +85,7 @@ def reverse(db):
 	res = {}
 	for pkg, tags in db.items():
 		for tag in tags:
-			if not res.has_key(tag):
+			if tag not in res:
 				res[tag] = set()
 			res[tag].add(pkg)
 	return res
@@ -165,7 +165,7 @@ class DB:
 	def insert(self, pkg, tags):
 		self.db[pkg] = tags.copy()
 		for tag in tags:
-			if self.rdb.has_key(tag):
+			if tag in self.rdb:
 				self.rdb[tag].add(pkg)
 			else:
 				self.rdb[tag] = set((pkg))
@@ -229,7 +229,7 @@ class DB:
 		res = DB()
 		db = {}
 		for pkg in package_iter:
-			if self.db.has_key(pkg): db[pkg] = self.db[pkg]
+			if pkg in self.db: db[pkg] = self.db[pkg]
 		res.db = db
 		res.rdb = reverse(db)
 		return res
@@ -349,25 +349,25 @@ class DB:
 
 	def has_package(self, pkg):
 		"""Check if the collection contains the given package"""
-		return self.db.has_key(pkg)
+		return pkg in self.db
 
 	hasPackage = function_deprecated_by(has_package)
 
 	def has_tag(self, tag):
 		"""Check if the collection contains packages tagged with tag"""
-		return self.rdb.has_key(tag)
+		return tag in self.rdb
 
 	hasTag = function_deprecated_by(has_tag)
 
 	def tags_of_package(self, pkg):
 		"""Return the tag set of a package"""
-		return self.db.has_key(pkg) and self.db[pkg] or set()
+		return pkg in self.db and self.db[pkg] or set()
 
 	tagsOfPackage = function_deprecated_by(tags_of_package)
 
 	def packages_of_tag(self, tag):
 		"""Return the package set of a tag"""
-		return self.rdb.has_key(tag) and self.rdb[tag] or set()
+		return tag in self.rdb and self.rdb[tag] or set()
 
 	packagesOfTag = function_deprecated_by(packages_of_tag)
 
@@ -399,7 +399,7 @@ class DB:
 		"""
 		Return the cardinality of a tag
 		"""
-		return self.rdb.has_key(tag) and len(self.rdb[tag]) or 0
+		return tag in self.rdb and len(self.rdb[tag]) or 0
 
 	def discriminance(self, tag):
 		"""
diff --git a/tests/test_debian_support.py b/tests/test_debian_support.py
index 205c037..d29fb1a 100755
--- a/tests/test_debian_support.py
+++ b/tests/test_debian_support.py
@@ -141,7 +141,7 @@ class VersionTests(unittest.TestCase):
             v1 = cls1(v1_str)
             v2 = cls2(v2_str)
             truth_fn = self._get_truth_fn(cmp_oper)
-            self.failUnless(truth_fn(v1, v2) == True,
+            self.assertTrue(truth_fn(v1, v2) == True,
                             "%r %s %r != True" % (v1, cmp_oper, v2))
 
     def test_comparisons(self):
-- 
1.7.2.5





More information about the pkg-python-debian-commits mailing list