62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
# Copyright 2024 (c) Anna Schumaker.
|
|
"""Tests our ListenBrainz priority queue."""
|
|
import emmental.listenbrainz.task
|
|
import liblistenbrainz
|
|
import unittest
|
|
|
|
|
|
class TestTaskQueue(unittest.TestCase):
|
|
"""Test the ListenBrainz queue."""
|
|
|
|
def setUp(self):
|
|
"""Set up common variables."""
|
|
self.queue = emmental.listenbrainz.task.Queue()
|
|
|
|
def test_init(self):
|
|
"""Test that the queue was set up properly."""
|
|
self.assertIsNotNone(self.queue)
|
|
|
|
def test_push_set_token(self):
|
|
"""Test calling push() with the 'set-token' operation."""
|
|
self.assertIsNone(self.queue._set_token)
|
|
|
|
self.queue.push("set-token", "abcde")
|
|
self.assertTupleEqual(self.queue._set_token, ("set-token", "abcde"))
|
|
self.queue.push("set-token", "fghij")
|
|
self.assertTupleEqual(self.queue._set_token, ("set-token", "fghij"))
|
|
|
|
self.assertTupleEqual(self.queue.pop(), ("set-token", "fghij"))
|
|
self.assertIsNone(self.queue._set_token)
|
|
|
|
self.queue.push("set-token", "abcde")
|
|
self.queue.clear("set-token")
|
|
self.assertIsNone(self.queue._set_token)
|
|
|
|
def test_push_clear_token(self):
|
|
"""Test calling push() with the 'clear-token' operation."""
|
|
self.queue.push("clear-token")
|
|
self.assertTupleEqual(self.queue._set_token, ("clear-token",))
|
|
self.assertTupleEqual(self.queue.pop(), ("clear-token",))
|
|
self.assertIsNone(self.queue._set_token)
|
|
|
|
self.queue.push("clear-token")
|
|
self.queue.clear("clear-token")
|
|
self.assertIsNone(self.queue._set_token)
|
|
|
|
def test_push_now_playing(self):
|
|
"""Test the push_now_playing() function."""
|
|
self.assertIsNone(self.queue._now_playing)
|
|
|
|
listen = liblistenbrainz.Listen("Track Name", "Artist Name")
|
|
self.queue.push("now-playing", listen)
|
|
self.assertTupleEqual(self.queue._now_playing, ("now-playing", listen))
|
|
|
|
self.queue.push("set-token", "abcde")
|
|
self.assertTupleEqual(self.queue.pop(), ("set-token", "abcde"))
|
|
self.assertTupleEqual(self.queue.pop(), ("now-playing", listen))
|
|
self.assertIsNone(self.queue._now_playing)
|
|
|
|
self.queue.push("now-playing", listen)
|
|
self.queue.clear("now-playing")
|
|
self.assertIsNone(self.queue._now_playing)
|