/ src / tests / test_multiqueue.py
test_multiqueue.py
 1  """Test cases for multiqueue"""
 2  
 3  import unittest
 4  from pybitmessage.network.multiqueue import MultiQueue
 5  
 6  
 7  class TestMultiQueue(unittest.TestCase):
 8      """Test cases for multiqueue"""
 9  
10      def test_queue_creation(self):
11          """Check if the queueCount matches the specified value"""
12          mqsize = 3
13          multiqueue = MultiQueue(count=mqsize)
14          self.assertEqual(multiqueue.queueCount, mqsize)
15  
16      def test_empty_queue(self):
17          """Check for empty queue"""
18          multiqueue = MultiQueue(count=5)
19          self.assertEqual(multiqueue.totalSize(), 0)
20  
21      def test_put_get_count(self):
22          """check if put & get count is equal"""
23          multiqueue = MultiQueue(count=5)
24          put_count = 6
25          for i in range(put_count):
26              multiqueue.put(i)
27  
28          get_count = 0
29          while multiqueue.totalSize() != 0:
30              if multiqueue.qsize() > 0:
31                  multiqueue.get()
32                  get_count += 1
33              multiqueue.iterate()
34  
35          self.assertEqual(get_count, put_count)
36  
37      def test_put_and_get(self):
38          """Testing Put and Get"""
39          item = 400
40          multiqueue = MultiQueue(count=3)
41          multiqueue.put(item)
42          result = None
43          for _ in multiqueue.queues:
44              if multiqueue.qsize() > 0:
45                  result = multiqueue.get()
46                  break
47              multiqueue.iterate()
48          self.assertEqual(result, item)
49  
50      def test_iteration(self):
51          """Check if the iteration wraps around correctly"""
52          mqsize = 3
53          iteroffset = 1
54          multiqueue = MultiQueue(count=mqsize)
55          for _ in range(mqsize + iteroffset):
56              multiqueue.iterate()
57          self.assertEqual(multiqueue.iter, iteroffset)
58  
59      def test_total_size(self):
60          """Check if the total size matches the expected value"""
61          multiqueue = MultiQueue(count=3)
62          put_count = 5
63          for i in range(put_count):
64              multiqueue.put(i)
65          self.assertEqual(multiqueue.totalSize(), put_count)