1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
from unittest.mock import patch
from tests import protocol
from mopidy_mpd.protocol import tagtype_list
class ConnectionHandlerTest(protocol.BaseTestCase):
def test_close_closes_the_client_connection(self):
with patch.object(self.session, "close") as close_mock:
self.send_request("close")
close_mock.assert_called_once_with()
self.assertEqualResponse("OK")
def test_empty_request(self):
self.send_request("")
self.assertNoResponse()
self.send_request(" ")
self.assertNoResponse()
def test_kill(self):
self.send_request("kill")
self.assertEqualResponse(
'ACK [4@0] {kill} you don\'t have permission for "kill"'
)
def test_ping(self):
self.send_request("ping")
self.assertEqualResponse("OK")
def test_malformed_comamnd(self):
self.send_request("GET / HTTP/1.1")
self.assertNoResponse()
self.connection.stop.assert_called_once_with("Malformed command")
def test_tagtypes(self):
self.send_request("tagtypes")
self.assertInResponse("tagtype: Artist")
self.assertInResponse("tagtype: ArtistSort")
self.assertInResponse("tagtype: Album")
self.assertInResponse("tagtype: AlbumArtist")
self.assertInResponse("tagtype: Title")
self.assertInResponse("tagtype: Track")
self.assertInResponse("tagtype: Name")
self.assertInResponse("tagtype: Genre")
self.assertInResponse("tagtype: Date")
self.assertInResponse("tagtype: Composer")
self.assertInResponse("tagtype: Performer")
self.assertInResponse("tagtype: Disc")
self.assertInResponse("tagtype: MUSICBRAINZ_ARTISTID")
self.assertInResponse("tagtype: MUSICBRAINZ_ALBUMID")
self.assertInResponse("tagtype: MUSICBRAINZ_ALBUMARTISTID")
self.assertInResponse("tagtype: MUSICBRAINZ_TRACKID")
self.assertInResponse("OK")
def test_tagtypes_clear(self):
self.send_request("tagtypes clear")
self.assertEqualResponse("OK")
self.send_request("tagtypes")
self.assertEqualResponse("OK")
def test_tagtypes_all(self):
self.send_request("tagtypes all")
self.assertEqualResponse("OK")
self.send_request("tagtypes")
self.assertInResponse("tagtype: Artist")
self.assertInResponse("tagtype: Album")
self.assertInResponse("tagtype: AlbumArtist")
self.assertInResponse("tagtype: Title")
self.assertInResponse("tagtype: Track")
self.assertInResponse("tagtype: Name")
self.assertInResponse("tagtype: Genre")
self.assertInResponse("tagtype: Date")
self.assertInResponse("tagtype: Composer")
self.assertInResponse("tagtype: Performer")
self.assertInResponse("tagtype: Disc")
self.assertInResponse("tagtype: MUSICBRAINZ_ARTISTID")
self.assertInResponse("tagtype: MUSICBRAINZ_ALBUMID")
self.assertInResponse("tagtype: MUSICBRAINZ_ALBUMARTISTID")
self.assertInResponse("tagtype: MUSICBRAINZ_TRACKID")
self.assertInResponse("OK")
self.assertResponseLength(len(tagtype_list.TAGTYPE_LIST) + 1)
def test_tagtypes_disable(self):
self.send_request("tagtypes all")
self.send_request(
"tagtypes disable MUSICBRAINZ_ARTISTID MUSICBRAINZ_ALBUMID "
"MUSICBRAINZ_ALBUMARTISTID MUSICBRAINZ_TRACKID"
)
self.assertEqualResponse("OK")
self.send_request("tagtypes")
self.assertInResponse("tagtype: Artist")
self.assertInResponse("tagtype: Album")
self.assertInResponse("tagtype: AlbumArtist")
self.assertInResponse("tagtype: Title")
self.assertInResponse("tagtype: Track")
self.assertInResponse("tagtype: Name")
self.assertInResponse("tagtype: Genre")
self.assertInResponse("tagtype: Date")
self.assertInResponse("tagtype: Composer")
self.assertInResponse("tagtype: Performer")
self.assertInResponse("tagtype: Disc")
self.assertNotInResponse("tagtype: MUSICBRAINZ_ARTISTID")
self.assertNotInResponse("tagtype: MUSICBRAINZ_ALBUMID")
self.assertNotInResponse("tagtype: MUSICBRAINZ_ALBUMARTISTID")
self.assertNotInResponse("tagtype: MUSICBRAINZ_TRACKID")
self.assertInResponse("OK")
def test_tagtypes_enable(self):
self.send_request("tagtypes clear")
self.send_request("tagtypes enable Artist Album Title Track Name Genre")
self.assertEqualResponse("OK")
self.send_request("tagtypes")
self.assertInResponse("tagtype: Artist")
self.assertInResponse("tagtype: Album")
self.assertInResponse("tagtype: Title")
self.assertInResponse("tagtype: Track")
self.assertInResponse("tagtype: Name")
self.assertInResponse("tagtype: Genre")
self.assertNotInResponse("tagtype: ArtistSort")
self.assertNotInResponse("tagtype: AlbumArtist")
self.assertNotInResponse("tagtype: AlbumArtistSort")
self.assertNotInResponse("tagtype: Date")
self.assertNotInResponse("tagtype: Composer")
self.assertNotInResponse("tagtype: Performer")
self.assertNotInResponse("tagtype: Disc")
self.assertNotInResponse("tagtype: MUSICBRAINZ_ARTISTID")
self.assertNotInResponse("tagtype: MUSICBRAINZ_ALBUMID")
self.assertNotInResponse("tagtype: MUSICBRAINZ_ALBUMARTISTID")
self.assertNotInResponse("tagtype: MUSICBRAINZ_TRACKID")
self.assertInResponse("OK")
def test_tagtypes_disable_x(self):
self.send_request("tagtypes disable x")
self.assertEqualResponse("ACK [2@0] {tagtypes} Unknown tag type")
def test_tagtypes_enable_x(self):
self.send_request("tagtypes enable x")
self.assertEqualResponse("ACK [2@0] {tagtypes} Unknown tag type")
def test_tagtypes_disable_empty(self):
self.send_request("tagtypes disable")
self.assertEqualResponse("ACK [2@0] {tagtypes} Not enough arguments")
def test_tagtypes_enable_empty(self):
self.send_request("tagtypes enable")
self.assertEqualResponse("ACK [2@0] {tagtypes} Not enough arguments")
def test_tagtypes_bogus(self):
self.send_request("tagtypes bogus")
self.assertEqualResponse("ACK [2@0] {tagtypes} Unknown sub command")
|