Kaydet (Commit) 91bbd9a7 authored tarafından Raymond Hettinger's avatar Raymond Hettinger

Used sets.Set() to compare unordered sequences.

Improves clarity and brevity.
üst 40006e9f
...@@ -2,6 +2,7 @@ import unittest ...@@ -2,6 +2,7 @@ import unittest
from test import test_support from test import test_support
from test.test_support import verify, verbose from test.test_support import verify, verbose
from sets import Set
import sys import sys
import warnings import warnings
...@@ -42,10 +43,8 @@ class AllTest(unittest.TestCase): ...@@ -42,10 +43,8 @@ class AllTest(unittest.TestCase):
exec "from %s import *" % modname in names exec "from %s import *" % modname in names
if names.has_key("__builtins__"): if names.has_key("__builtins__"):
del names["__builtins__"] del names["__builtins__"]
keys = names.keys() keys = Set(names)
keys.sort() all = Set(sys.modules[modname].__all__)
all = list(sys.modules[modname].__all__) # in case it's a tuple
all.sort()
verify(keys==all, "%s != %s" % (keys, all)) verify(keys==all, "%s != %s" % (keys, all))
def test_all(self): def test_all(self):
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
import test.test_support, unittest import test.test_support, unittest
from test.test_support import fcmp, have_unicode, TESTFN, unlink from test.test_support import fcmp, have_unicode, TESTFN, unlink
from sets import Set
import sys, warnings, cStringIO import sys, warnings, cStringIO
warnings.filterwarnings("ignore", "hex../oct.. of negative int", warnings.filterwarnings("ignore", "hex../oct.. of negative int",
...@@ -1159,18 +1160,9 @@ class BuiltinTest(unittest.TestCase): ...@@ -1159,18 +1160,9 @@ class BuiltinTest(unittest.TestCase):
get_vars_f2 = staticmethod(get_vars_f2) get_vars_f2 = staticmethod(get_vars_f2)
def test_vars(self): def test_vars(self):
a = b = None self.assertEqual(Set(vars()), Set(dir()))
a = vars().keys()
b = dir()
a.sort()
b.sort()
self.assertEqual(a, b)
import sys import sys
a = vars(sys).keys() self.assertEqual(Set(vars(sys)), Set(dir(sys)))
b = dir(sys)
a.sort()
b.sort()
self.assertEqual(a, b)
self.assertEqual(self.get_vars_f0(), {}) self.assertEqual(self.get_vars_f0(), {})
self.assertEqual(self.get_vars_f2(), {'a': 1, 'b': 2}) self.assertEqual(self.get_vars_f2(), {'a': 1, 'b': 2})
self.assertRaises(TypeError, vars, 42, 42) self.assertRaises(TypeError, vars, 42, 42)
......
...@@ -2,6 +2,7 @@ import unittest ...@@ -2,6 +2,7 @@ import unittest
from test.test_support import run_unittest, TESTFN from test.test_support import run_unittest, TESTFN
import glob import glob
import os import os
from sets import Set
def mkdirs(fname): def mkdirs(fname):
if os.path.exists(fname) or fname == '': if os.path.exists(fname) or fname == '':
...@@ -61,11 +62,7 @@ class GlobTests(unittest.TestCase): ...@@ -61,11 +62,7 @@ class GlobTests(unittest.TestCase):
return glob.glob(p) return glob.glob(p)
def assertSequencesEqual_noorder(self, l1, l2): def assertSequencesEqual_noorder(self, l1, l2):
l1 = list(l1) self.assertEqual(Set(l1), Set(l2))
l2 = list(l2)
l1.sort()
l2.sort()
self.assertEqual(l1, l2)
def test_glob_literal(self): def test_glob_literal(self):
eq = self.assertSequencesEqual_noorder eq = self.assertSequencesEqual_noorder
......
...@@ -7,6 +7,7 @@ import unittest, sys ...@@ -7,6 +7,7 @@ import unittest, sys
from types import ClassType, FunctionType, MethodType from types import ClassType, FunctionType, MethodType
import pyclbr import pyclbr
from unittest import TestCase from unittest import TestCase
from sets import Set
# This next line triggers an error on old versions of pyclbr. # This next line triggers an error on old versions of pyclbr.
...@@ -23,17 +24,10 @@ class PyclbrTest(TestCase): ...@@ -23,17 +24,10 @@ class PyclbrTest(TestCase):
def assertListEq(self, l1, l2, ignore): def assertListEq(self, l1, l2, ignore):
''' succeed iff {l1} - {ignore} == {l2} - {ignore} ''' ''' succeed iff {l1} - {ignore} == {l2} - {ignore} '''
l1.sort() missing = (Set(l1) ^ Set(l2)) - Set(ignore)
l2.sort() if missing:
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:
print >>sys.stderr, "l1=%r\nl2=%r\nignore=%r" % (l1, l2, ignore) 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): def assertHasattr(self, obj, attr, ignore):
''' succeed iff hasattr(obj,attr) or attr in ignore. ''' ''' succeed iff hasattr(obj,attr) or attr in ignore. '''
......
# Check every path through every method of UserDict # Check every path through every method of UserDict
import test.test_support, unittest import test.test_support, unittest
from sets import Set
import UserDict import UserDict
...@@ -68,10 +69,7 @@ class TestMappingProtocol(unittest.TestCase): ...@@ -68,10 +69,7 @@ class TestMappingProtocol(unittest.TestCase):
self.assert_(hasattr(iter, 'next')) self.assert_(hasattr(iter, 'next'))
self.assert_(hasattr(iter, '__iter__')) self.assert_(hasattr(iter, '__iter__'))
x = list(iter) x = list(iter)
x.sort() self.assert_(Set(x)==Set(lst)==Set(ref))
lst.sort()
ref.sort()
self.assert_(x==lst==ref)
check_iterandlist(d.iterkeys(), d.keys(), self.reference.keys()) check_iterandlist(d.iterkeys(), d.keys(), self.reference.keys())
check_iterandlist(iter(d), d.keys(), self.reference.keys()) check_iterandlist(iter(d), d.keys(), self.reference.keys())
check_iterandlist(d.itervalues(), d.values(), self.reference.values()) check_iterandlist(d.itervalues(), d.values(), self.reference.values())
...@@ -243,10 +241,8 @@ class UserDictTest(TestMappingProtocol): ...@@ -243,10 +241,8 @@ class UserDictTest(TestMappingProtocol):
ikeys = [] ikeys = []
for k in u2: for k in u2:
ikeys.append(k) ikeys.append(k)
ikeys.sort()
keys = u2.keys() keys = u2.keys()
keys.sort() self.assertEqual(Set(ikeys), Set(keys))
self.assertEqual(ikeys, keys)
# Test setdefault # Test setdefault
t = UserDict.UserDict() t = UserDict.UserDict()
......
...@@ -4,6 +4,7 @@ import UserList ...@@ -4,6 +4,7 @@ import UserList
import weakref import weakref
from test import test_support from test import test_support
from sets import Set
class C: class C:
...@@ -340,9 +341,7 @@ class MappingTestCase(TestBase): ...@@ -340,9 +341,7 @@ class MappingTestCase(TestBase):
"wrong object returned by weak dict!") "wrong object returned by weak dict!")
items1 = dict.items() items1 = dict.items()
items2 = dict.copy().items() items2 = dict.copy().items()
items1.sort() self.assert_(Set(items1) == Set(items2),
items2.sort()
self.assert_(items1 == items2,
"cloning of weak-keyed dictionary did not work!") "cloning of weak-keyed dictionary did not work!")
del items1, items2 del items1, items2
self.assert_(len(dict) == self.COUNT) self.assert_(len(dict) == self.COUNT)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment