TestSubset(): Generalized the framework to support testing upcoming

<, <=, etc methods too.
This commit is contained in:
Tim Peters 2002-08-25 18:21:47 +00:00
parent 4127e91d20
commit 93d8d48c15
1 changed files with 23 additions and 10 deletions

View File

@ -361,12 +361,25 @@ class TestMutate(unittest.TestCase):
class TestSubsets(unittest.TestCase): class TestSubsets(unittest.TestCase):
case2method = {"<=": "issubset",
">=": "issuperset",
}
cases_with_ops = Set(["==", "!="])
def test_issubset(self): def test_issubset(self):
result = self.left.issubset(self.right) x = self.left
if "<" in self.cases: y = self.right
self.failUnless(result) for case in "!=", "==", "<", "<=", ">", ">=":
else: expected = case in self.cases
self.failUnless(not result) if case in TestSubsets.case2method:
# Test the method-name spelling.
method = getattr(x, TestSubsets.case2method[case])
result = method(y)
self.assertEqual(result, expected)
if case in TestSubsets.cases_with_ops:
# Test the binary infix spelling.
result = eval("x" + case + "y", locals())
self.assertEqual(result, expected)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -374,7 +387,7 @@ class TestSubsetEqualEmpty(TestSubsets):
left = Set() left = Set()
right = Set() right = Set()
name = "both empty" name = "both empty"
cases = "<>" cases = "==", "<=", ">="
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -382,7 +395,7 @@ class TestSubsetEqualNonEmpty(TestSubsets):
left = Set([1, 2]) left = Set([1, 2])
right = Set([1, 2]) right = Set([1, 2])
name = "equal pair" name = "equal pair"
cases = "<>" cases = "==", "<=", ">="
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -390,7 +403,7 @@ class TestSubsetEmptyNonEmpty(TestSubsets):
left = Set() left = Set()
right = Set([1, 2]) right = Set([1, 2])
name = "one empty, one non-empty" name = "one empty, one non-empty"
cases = "<" cases = "!=", "<", "<="
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -398,7 +411,7 @@ class TestSubsetPartial(TestSubsets):
left = Set([1]) left = Set([1])
right = Set([1, 2]) right = Set([1, 2])
name = "one a non-empty subset of other" name = "one a non-empty subset of other"
cases = "<" cases = "!=", "<", "<="
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -406,7 +419,7 @@ class TestSubsetNonOverlap(TestSubsets):
left = Set([1]) left = Set([1])
right = Set([2]) right = Set([2])
name = "neither empty, neither contains" name = "neither empty, neither contains"
cases = "" cases = "!="
#============================================================================== #==============================================================================