7 sys
.path
.insert(0, '../src/lib')
10 class QueueDictTestCase(unittest
.TestCase
):
13 self
._qd
= QueueDict
.FeedQD()
15 self
._qd
.sort_order
= self
._order
17 for value
in xrange(self
.N_ITEMS
):
18 for key
in random
.sample(xrange(self
.N_ITEMS
), self
.N_ITEMS
):
19 self
._qd
[key
] = "Item#%d" % value
22 return self
._qd
.keys()
24 def pickRandomKey(self
, keys
):
25 return random
.choice(keys
)
27 def getIndex(self
, key
):
28 return self
._qd
.index(key
)
32 key
= self
.pickRandomKey(keys
)
33 self
.assertEqual(keys
.index(key
), self
._qd
.index(key
))
36 self
.failUnless(self
.getKeys() > 0)
39 self
.assertEqual (self
.N_ITEMS
, len(self
._qd
))
41 def testSortOrder(self
):
42 self
.assertEqual (self
._order
, self
._qd
.sort_order
)
43 self
._qd
.sort_order
= not self
._order
44 self
.assertNotEqual (self
._order
, self
._qd
.sort_order
)
46 def testFirstItem(self
):
48 items
= self
._qd
.items()
49 front
= self
._qd
.get_first_item()
50 self
.failUnless(front
is not None)
51 self
.assertEqual(items
[0][1], front
)
55 self
._qd
.sort_order
= not self
._order
58 def testLastItem(self
):
60 items
= self
._qd
.items()
61 back
= self
._qd
.get_last_item()
62 self
.failUnless(back
is not None)
63 self
.assertEqual(items
[-1][1], back
)
67 self
._qd
.sort_order
= not self
._order
70 def testNextItem(self
):
72 random_key
= self
.pickRandomKey(keys
)
73 next_keyidx
= self
.getIndex(random_key
) + 1
74 next_item
= self
._qd
.get_next_item(random_key
)
76 self
.failUnless(next_keyidx
is not None)
77 self
.failUnless(next_item
is not None)
78 self
.assertEqual(self
._qd
.get(keys
[next_keyidx
]), next_item
)
80 def testPreviousItem(self
):
82 random_key
= self
.pickRandomKey(keys
)
83 prev_keyidx
= self
.getIndex(random_key
) - 1
84 prev_item
= self
._qd
.get_previous_item(random_key
)
86 self
.failUnless(prev_keyidx
is not None)
87 self
.failUnless(prev_item
is not None)
88 self
.assertEqual(self
._qd
.get(keys
[prev_keyidx
]), prev_item
)
91 def testNonExistentKey(self
):
92 # Value of a non-existent key should be None
93 key
= chr(int(random
.random() * self
.N_ITEMS
))
94 item
= self
._qd
.get(key
)
95 self
.failUnless (item
is None)
98 suite
= unittest
.makeSuite(TestQueueDict
, 'test')
101 if __name__
== '__main__':