]> granicus.if.org Git - python/commitdiff
Used sets.Set() to compare unordered sequences.
authorRaymond Hettinger <python@rcn.com>
Fri, 2 May 2003 09:06:28 +0000 (09:06 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 2 May 2003 09:06:28 +0000 (09:06 +0000)
Improves clarity and brevity.

Lib/test/test___all__.py
Lib/test/test_builtin.py
Lib/test/test_glob.py
Lib/test/test_pyclbr.py
Lib/test/test_userdict.py
Lib/test/test_weakref.py

index 66e6eebaf2f63537b3855109e18017724a184398..e9cb093ac35389311c4a265c54684df51cd1f3eb 100644 (file)
@@ -2,6 +2,7 @@ import unittest
 from test import test_support
 
 from test.test_support import verify, verbose
+from sets import Set
 import sys
 import warnings
 
@@ -42,10 +43,8 @@ class AllTest(unittest.TestCase):
         exec "from %s import *" % modname in names
         if names.has_key("__builtins__"):
             del names["__builtins__"]
-        keys = names.keys()
-        keys.sort()
-        all = list(sys.modules[modname].__all__) # in case it's a tuple
-        all.sort()
+        keys = Set(names)
+        all = Set(sys.modules[modname].__all__)
         verify(keys==all, "%s != %s" % (keys, all))
 
     def test_all(self):
index 505da7017572934b5d185ef7244cfcdf20b33299..97786ad07352d1edc455508468400e03ba3d57ba 100644 (file)
@@ -2,6 +2,7 @@
 
 import test.test_support, unittest
 from test.test_support import fcmp, have_unicode, TESTFN, unlink
+from sets import Set
 
 import sys, warnings, cStringIO
 warnings.filterwarnings("ignore", "hex../oct.. of negative int",
@@ -1159,18 +1160,9 @@ class BuiltinTest(unittest.TestCase):
     get_vars_f2 = staticmethod(get_vars_f2)
 
     def test_vars(self):
-        a = b = None
-        a = vars().keys()
-        b = dir()
-        a.sort()
-        b.sort()
-        self.assertEqual(a, b)
+        self.assertEqual(Set(vars()), Set(dir()))
         import sys
-        a = vars(sys).keys()
-        b = dir(sys)
-        a.sort()
-        b.sort()
-        self.assertEqual(a, b)
+        self.assertEqual(Set(vars(sys)), Set(dir(sys)))
         self.assertEqual(self.get_vars_f0(), {})
         self.assertEqual(self.get_vars_f2(), {'a': 1, 'b': 2})
         self.assertRaises(TypeError, vars, 42, 42)
index cfc30771e7f4851023f63a9a6916b81137646761..a06ce9d2904968fcd79a885fff1e4648af0deac5 100644 (file)
@@ -2,6 +2,7 @@ import unittest
 from test.test_support import run_unittest, TESTFN
 import glob
 import os
+from sets import Set
 
 def mkdirs(fname):
     if os.path.exists(fname) or fname == '':
@@ -61,11 +62,7 @@ class GlobTests(unittest.TestCase):
         return glob.glob(p)
 
     def assertSequencesEqual_noorder(self, l1, l2):
-        l1 = list(l1)
-        l2 = list(l2)
-        l1.sort()
-        l2.sort()
-        self.assertEqual(l1, l2)
+        self.assertEqual(Set(l1), Set(l2))
 
     def test_glob_literal(self):
         eq = self.assertSequencesEqual_noorder
index 7a59c2e09d2b0a1acce1ac2955e199a59b9cb3a5..12299621403e915d8ff244735bfeae522acee3f0 100644 (file)
@@ -7,6 +7,7 @@ import unittest, sys
 from types import ClassType, FunctionType, MethodType
 import pyclbr
 from unittest import TestCase
+from sets import Set
 
 # This next line triggers an error on old versions of pyclbr.
 
@@ -23,17 +24,10 @@ class PyclbrTest(TestCase):
 
     def assertListEq(self, l1, l2, ignore):
         ''' succeed iff {l1} - {ignore} == {l2} - {ignore} '''
-        l1.sort()
-        l2.sort()
-        try:
-            for p1, p2 in (l1, l2), (l2, l1):
-                for item in p1:
-                    ok = (item in p2) or (item in ignore)
-                    if not ok:
-                        self.fail("%r missing" % item)
-        except:
+        missing = (Set(l1) ^ Set(l2)) - Set(ignore)
+        if missing:
             print >>sys.stderr, "l1=%r\nl2=%r\nignore=%r" % (l1, l2, ignore)
-            raise
+            self.fail("%r missing" % missing.pop())
 
     def assertHasattr(self, obj, attr, ignore):
         ''' succeed iff hasattr(obj,attr) or attr in ignore. '''
index bcf60a5c9bcb593ecf858ad7379205265dea84fc..399ddda00ae2878158a652704e361a7b45d1cfee 100644 (file)
@@ -1,6 +1,7 @@
 # Check every path through every method of UserDict
 
 import test.test_support, unittest
+from sets import Set
 
 import UserDict
 
@@ -68,10 +69,7 @@ class TestMappingProtocol(unittest.TestCase):
             self.assert_(hasattr(iter, 'next'))
             self.assert_(hasattr(iter, '__iter__'))
             x = list(iter)
-            x.sort()
-            lst.sort()
-            ref.sort()
-            self.assert_(x==lst==ref)
+            self.assert_(Set(x)==Set(lst)==Set(ref))
         check_iterandlist(d.iterkeys(), d.keys(), self.reference.keys())
         check_iterandlist(iter(d), d.keys(), self.reference.keys())
         check_iterandlist(d.itervalues(), d.values(), self.reference.values())
@@ -243,10 +241,8 @@ class UserDictTest(TestMappingProtocol):
         ikeys = []
         for k in u2:
             ikeys.append(k)
-        ikeys.sort()
         keys = u2.keys()
-        keys.sort()
-        self.assertEqual(ikeys, keys)
+        self.assertEqual(Set(ikeys), Set(keys))
 
         # Test setdefault
         t = UserDict.UserDict()
index eb877208ce5d2be8b117d5f683f52439e82b63da..7e7d068c042dae29ff1d70031421e6b7bf34ef3b 100644 (file)
@@ -4,6 +4,7 @@ import UserList
 import weakref
 
 from test import test_support
+from sets import Set
 
 
 class C:
@@ -340,9 +341,7 @@ class MappingTestCase(TestBase):
                          "wrong object returned by weak dict!")
         items1 = dict.items()
         items2 = dict.copy().items()
-        items1.sort()
-        items2.sort()
-        self.assert_(items1 == items2,
+        self.assert_(Set(items1) == Set(items2),
                      "cloning of weak-keyed dictionary did not work!")
         del items1, items2
         self.assert_(len(dict) == self.COUNT)