TestOnlySetsInBinaryOps:  Simplified the non-inplace tests by using
assertRaises.  Fixed a repeated subtle bug in the inplace tests by
removing the possibilty that a self.fail() call could raise a
TypeError that the test catches by mistake.
diff --git a/Lib/test/test_sets.py b/Lib/test/test_sets.py
index f1bd3b8..d5c886a 100644
--- a/Lib/test/test_sets.py
+++ b/Lib/test/test_sets.py
@@ -506,78 +506,50 @@
     def test_union_update(self):
         try:
             self.set |= self.other
-            self.fail("expected TypeError")
         except TypeError:
             pass
+        else:
+            self.fail("expected TypeError")
 
     def test_union(self):
-        try:
-            self.other | self.set
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
-        try:
-            self.set | self.other
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
+        self.assertRaises(TypeError, lambda: self.set | self.other)
+        self.assertRaises(TypeError, lambda: self.other | self.set)
 
     def test_intersection_update(self):
         try:
             self.set &= self.other
-            self.fail("expected TypeError")
         except TypeError:
             pass
+        else:
+            self.fail("expected TypeError")
 
     def test_intersection(self):
-        try:
-            self.other & self.set
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
-        try:
-            self.set & self.other
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
+        self.assertRaises(TypeError, lambda: self.set & self.other)
+        self.assertRaises(TypeError, lambda: self.other & self.set)
 
     def test_sym_difference_update(self):
         try:
             self.set ^= self.other
-            self.fail("expected TypeError")
         except TypeError:
             pass
+        else:
+            self.fail("expected TypeError")
 
     def test_sym_difference(self):
-        try:
-            self.other ^ self.set
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
-        try:
-            self.set ^ self.other
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
+        self.assertRaises(TypeError, lambda: self.set ^ self.other)
+        self.assertRaises(TypeError, lambda: self.other ^ self.set)
 
     def test_difference_update(self):
         try:
             self.set -= self.other
-            self.fail("expected TypeError")
         except TypeError:
             pass
+        else:
+            self.fail("expected TypeError")
 
     def test_difference(self):
-        try:
-            self.other - self.set
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
-        try:
-            self.set - self.other
-            self.fail("expected TypeError")
-        except TypeError:
-            pass
+        self.assertRaises(TypeError, lambda: self.set - self.other)
+        self.assertRaises(TypeError, lambda: self.other - self.set)
 
 #------------------------------------------------------------------------------