You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.4 KiB
66 lines
1.4 KiB
import gevent
|
|
from unittest import TestCase
|
|
|
|
from disco.voice.queue import PlayableQueue
|
|
|
|
|
|
class TestPlayableQueue(TestCase):
|
|
def test_append(self):
|
|
q = PlayableQueue()
|
|
q.append(1)
|
|
q.append(2)
|
|
q.append(3)
|
|
|
|
self.assertEqual(q._data, [1, 2, 3])
|
|
self.assertEqual(q.get(), 1)
|
|
self.assertEqual(q.get(), 2)
|
|
self.assertEqual(q.get(), 3)
|
|
|
|
def test_len(self):
|
|
q = PlayableQueue()
|
|
|
|
for idx in range(1234):
|
|
q.append(idx)
|
|
|
|
self.assertEqual(len(q), 1234)
|
|
|
|
def test_iter(self):
|
|
q = PlayableQueue()
|
|
|
|
for idx in range(5):
|
|
q.append(idx)
|
|
|
|
self.assertEqual(sum(q), 10)
|
|
|
|
def test_blocking_get(self):
|
|
q = PlayableQueue()
|
|
result = gevent.event.AsyncResult()
|
|
|
|
def get():
|
|
result.set(q.get())
|
|
|
|
gevent.spawn(get)
|
|
q.append(5)
|
|
self.assertEqual(result.get(), 5)
|
|
|
|
def test_shuffle(self):
|
|
q = PlayableQueue()
|
|
|
|
for idx in range(10000):
|
|
q.append(idx)
|
|
|
|
self.assertEqual(q._data[0], 0)
|
|
q.shuffle()
|
|
self.assertNotEqual(q._data[0], 0)
|
|
|
|
def test_clear(self):
|
|
q = PlayableQueue()
|
|
|
|
for idx in range(100):
|
|
q.append(idx)
|
|
|
|
self.assertEqual(q._data[0], 0)
|
|
self.assertEqual(q._data[-1], 99)
|
|
self.assertEqual(len(q), 100)
|
|
q.clear()
|
|
self.assertEqual(len(q), 0)
|
|
|