From 38ce709fe44ebf37e6c8531451eab98fe0a552a0 Mon Sep 17 00:00:00 2001
From: Alex Gaynor <alex.gaynor@gmail.com>
Date: Tue, 24 Jul 2012 07:01:57 -0700
Subject: [PATCH] Added tests for deprecation warnings and fixed the argument
 order for the warnings.

---
 django/utils/datastructures.py                | 12 ++++++++----
 tests/regressiontests/utils/datastructures.py | 16 ++++++++++++++++
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index 16741ba36b..41b43b286c 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -196,14 +196,18 @@ class SortedDict(dict):
         # This, and insert() are deprecated because they cannot be implemented
         # using collections.OrderedDict (Python 2.7 and up), which we'll
         # eventually switch to
-        warnings.warn(PendingDeprecationWarning,
-            "SortedDict.value_for_index is deprecated", stacklevel=2)
+        warnings.warn(
+            "SortedDict.value_for_index is deprecated", PendingDeprecationWarning,
+            stacklevel=2
+        )
         return self[self.keyOrder[index]]
 
     def insert(self, index, key, value):
         """Inserts the key, value pair before the item with the given index."""
-        warnings.warn(PendingDeprecationWarning,
-            "SortedDict.insert is deprecated", stacklevel=2)
+        warnings.warn(
+            "SortedDict.insert is deprecated", PendingDeprecationWarning,
+            stacklevel=2
+        )
         if key in self.keyOrder:
             n = self.keyOrder.index(key)
             del self.keyOrder[n]
diff --git a/tests/regressiontests/utils/datastructures.py b/tests/regressiontests/utils/datastructures.py
index 08bcd7157a..aea5393aab 100644
--- a/tests/regressiontests/utils/datastructures.py
+++ b/tests/regressiontests/utils/datastructures.py
@@ -4,6 +4,7 @@ Tests for stuff in django.utils.datastructures.
 
 import copy
 import pickle
+import warnings
 
 from django.test import SimpleTestCase
 from django.utils.datastructures import (DictWrapper, ImmutableList,
@@ -122,6 +123,21 @@ class SortedDictTests(SimpleTestCase):
         self.assertEqual(self.d1, {})
         self.assertEqual(self.d1.keyOrder, [])
 
+    def test_insert(self):
+        d = SortedDict()
+        with warnings.catch_warnings(record=True) as w:
+            warnings.simplefilter("always")
+            d.insert(0, "hello", "world")
+        assert w[0].category is PendingDeprecationWarning
+
+    def test_value_for_index(self):
+        d = SortedDict({"a": 3})
+        with warnings.catch_warnings(record=True) as w:
+            warnings.simplefilter("always")
+            self.assertEqual(d.value_for_index(0), 3)
+        assert w[0].category is PendingDeprecationWarning
+
+
 class MergeDictTests(SimpleTestCase):
 
     def test_simple_mergedict(self):