generate py3k warnings on __getslice__, __delslice__, and __setslice__

Reviewer: Brett Cannon
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index 274e147..1b487fe 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -175,6 +175,28 @@
             with catch_warning() as w:
                 self.assertWarning(set(), w, expected)
 
+    def test_slice_methods(self):
+        class Spam(object):
+            def __getslice__(self, i, j): pass
+            def __setslice__(self, i, j, what): pass
+            def __delslice__(self, i, j): pass
+        class Egg:
+            def __getslice__(self, i, h): pass
+            def __setslice__(self, i, j, what): pass
+            def __delslice__(self, i, j): pass
+
+        expected = "in 3.x, __{0}slice__ has been removed; use __{0}item__"
+
+        for obj in (Spam(), Egg()):
+            with catch_warning() as w:
+                self.assertWarning(obj[1:2], w, expected.format('get'))
+                w.reset()
+                del obj[3:4]
+                self.assertWarning(None, w, expected.format('del'))
+                w.reset()
+                obj[4:5] = "eggs"
+                self.assertWarning(None, w, expected.format('set'))
+
     def test_tuple_parameter_unpacking(self):
         expected = "tuple parameter unpacking has been removed in 3.x"
         with catch_warning() as w: