def test_iter(self): q = PlayableQueue() for idx in range(5): q.append(idx) self.assertEqual(sum(q), 10)
def test_len(self): q = PlayableQueue() for idx in range(1234): q.append(idx) self.assertEqual(len(q), 1234)
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 __init__(self, client, queue=None): self.client = client # Queue contains playable items self.queue = queue or PlayableQueue() # Whether we're playing music (true for lifetime) self.playing = True # Set to an event when playback is paused self.paused = None # Current playing item self.now_playing = None # Current play task self.play_task = None # Core task self.run_task = gevent.spawn(self.run) # Event triggered when playback is complete self.complete = gevent.event.Event() # Event emitter for metadata self.events = Emitter(spawn_each=True)
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_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)
def __init__(self, client, queue=None): super(Player, self).__init__() self.client = client self.last_activity = time.time() self.force_kick = False self.already_play = False self.force_return = 1 self.max_returns = 1 self.sleep_time_returns = 3 # replay self.replay = False # Text channel self.text_id = None # Queue contains playable items self.queue = queue or PlayableQueue() # Whether we're playing music (true for lifetime) self.playing = True # Set to an event when playback is paused self.paused = None # Current playing item self.now_playing = None # Last playing item self.then_playing = None # Current play task self.play_task = None # Core task self.run_task = gevent.spawn(self.run) # Event triggered when playback is complete self.complete = gevent.event.Event() # Event emitter for metadata self.events = Emitter()