Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[1.2.X] Migrated datastructures utils doctests. Thanks to Stephan Jae…

…kel.

Backport of r13891 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@13912 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 0b7b3e1ae8737c8ea68a2fef10d4295be61478d1 1 parent 46d1d95
Russell Keith-Magee freakboy3742 authored
Showing with 66 additions and 51 deletions.
  1. +66 −51 tests/regressiontests/utils/datastructures.py
117 tests/regressiontests/utils/datastructures.py
View
@@ -1,52 +1,67 @@
-"""
->>> from django.utils.datastructures import SortedDict
-
->>> d = SortedDict()
->>> d[7] = 'seven'
->>> d[1] = 'one'
->>> d[9] = 'nine'
->>> d.keys()
-[7, 1, 9]
->>> d.values()
-['seven', 'one', 'nine']
->>> d.items()
-[(7, 'seven'), (1, 'one'), (9, 'nine')]
-
-# Overwriting an item keeps it's place.
->>> d[1] = 'ONE'
->>> d.values()
-['seven', 'ONE', 'nine']
-
-# New items go to the end.
->>> d[0] = 'nil'
->>> d.keys()
-[7, 1, 9, 0]
-
-# Deleting an item, then inserting the same key again will place it at the end.
->>> del d[7]
->>> d.keys()
-[1, 9, 0]
->>> d[7] = 'lucky number 7'
->>> d.keys()
-[1, 9, 0, 7]
-
-# Changing the keys won't do anything, it's only a copy of the keys dict.
->>> k = d.keys()
->>> k.remove(9)
->>> d.keys()
-[1, 9, 0, 7]
-
-# Initialising a SortedDict with two keys will just take the first one. A real
-# dict will actually take the second value so we will too, but we'll keep the
-# ordering from the first key found.
->>> tuples = ((2, 'two'), (1, 'one'), (2, 'second-two'))
->>> d = SortedDict(tuples)
->>> d.keys()
-[2, 1]
->>> real_dict = dict(tuples)
->>> sorted(real_dict.values())
-['one', 'second-two']
->>> d.values() # Here the order of SortedDict values *is* what we are testing
-['second-two', 'one']
-"""
+from django.test import TestCase
+from django.utils.datastructures import SortedDict
+class DatastructuresTests(TestCase):
+ def setUp(self):
+ self.d1 = SortedDict()
+ self.d1[7] = 'seven'
+ self.d1[1] = 'one'
+ self.d1[9] = 'nine'
+
+ self.d2 = SortedDict()
+ self.d2[1] = 'one'
+ self.d2[9] = 'nine'
+ self.d2[0] = 'nil'
+ self.d2[7] = 'seven'
+
+ def test_basic_methods(self):
+ self.assertEquals(self.d1.keys(), [7, 1, 9])
+ self.assertEquals(self.d1.values(), ['seven', 'one', 'nine'])
+ self.assertEquals(self.d1.items(), [(7, 'seven'), (1, 'one'), (9, 'nine')])
+
+ def test_overwrite_ordering(self):
+ """ Overwriting an item keeps it's place. """
+ self.d1[1] = 'ONE'
+ self.assertEquals(self.d1.values(), ['seven', 'ONE', 'nine'])
+
+ def test_append_items(self):
+ """ New items go to the end. """
+ self.d1[0] = 'nil'
+ self.assertEquals(self.d1.keys(), [7, 1, 9, 0])
+
+ def test_delete_and_insert(self):
+ """
+ Deleting an item, then inserting the same key again will place it
+ at the end.
+ """
+ del self.d2[7]
+ self.assertEquals(self.d2.keys(), [1, 9, 0])
+ self.d2[7] = 'lucky number 7'
+ self.assertEquals(self.d2.keys(), [1, 9, 0, 7])
+
+ def test_change_keys(self):
+ """
+ Changing the keys won't do anything, it's only a copy of the
+ keys dict.
+ """
+ k = self.d2.keys()
+ k.remove(9)
+ self.assertEquals(self.d2.keys(), [1, 9, 0, 7])
+
+ def test_init_keys(self):
+ """
+ Initialising a SortedDict with two keys will just take the first one.
+
+ A real dict will actually take the second value so we will too, but
+ we'll keep the ordering from the first key found.
+ """
+ tuples = ((2, 'two'), (1, 'one'), (2, 'second-two'))
+ d = SortedDict(tuples)
+
+ self.assertEquals(d.keys(), [2, 1])
+
+ real_dict = dict(tuples)
+ self.assertEquals(sorted(real_dict.values()), ['one', 'second-two'])
+
+ # Here the order of SortedDict values *is* what we are testing
+ self.assertEquals(d.values(), ['second-two', 'one'])
Please sign in to comment.
Something went wrong with that request. Please try again.