mirror of
https://github.com/beetbox/beets.git
synced 2026-01-02 22:12:53 +01:00
BPD tests: test supported tag types
MPD now supports more fields ("tags") than what BPD advertises. Fixing
this should be a simple task of extending the mapping of fields to tags
in BPD's implementation.
This commit is contained in:
parent
acd66ce560
commit
9a5be1f971
1 changed files with 23 additions and 1 deletions
|
|
@ -124,6 +124,8 @@ class MPCClient(object):
|
|||
response += line
|
||||
if line.startswith(b'OK') or line.startswith(b'ACK'):
|
||||
return MPCResponse(response)
|
||||
elif not line:
|
||||
raise RuntimeError('Empty response')
|
||||
|
||||
def send_command(self, command, *args):
|
||||
cmd = [command]
|
||||
|
|
@ -132,7 +134,8 @@ class MPCClient(object):
|
|||
cmd.append(b'"{}"'.format(arg))
|
||||
else:
|
||||
cmd.append(arg)
|
||||
self.sock.sendall(b' '.join(cmd) + b'\n')
|
||||
request = b' '.join(cmd) + b'\n'
|
||||
self.sock.sendall(request)
|
||||
return self.get_response()
|
||||
|
||||
def readline(self, terminator=b'\n', bufsize=1024):
|
||||
|
|
@ -144,6 +147,7 @@ class MPCClient(object):
|
|||
line, self.buf = self.buf.split(terminator, 1)
|
||||
line += terminator
|
||||
return line
|
||||
self.sock.settimeout(1)
|
||||
data = self.sock.recv(bufsize)
|
||||
if data:
|
||||
self.buf += data
|
||||
|
|
@ -267,6 +271,24 @@ class BPDTest(unittest.TestCase, TestHelper):
|
|||
response = self.client.send_command(b'ping')
|
||||
self.assertTrue(response.ok)
|
||||
|
||||
@unittest.expectedFailure
|
||||
def test_cmd_tagtypes(self):
|
||||
response = self.client.send_command(b'tagtypes')
|
||||
types = {line[9:].lower() for line in response.body.split(b'\n')}
|
||||
self.assertEqual({
|
||||
b'artist', b'artistsort', b'album', b'albumsort', b'albumartist',
|
||||
b'albumartistsort', b'title', b'track', b'name', b'genre', b'date',
|
||||
b'composer', b'performer', b'comment', b'disc', b'label',
|
||||
b'musicbrainz_artistid', b'musicbrainz_albumid',
|
||||
b'musicbrainz_albumartistid', b'musicbrainz_trackid',
|
||||
b'musicbrainz_releasetrackid', b'musicbrainz_workid',
|
||||
}, types)
|
||||
|
||||
@unittest.expectedFailure
|
||||
def test_tagtypes_mask(self):
|
||||
response = self.client.send_command(b'tagtypes', b'clear')
|
||||
self.assertTrue(response.ok)
|
||||
|
||||
test_implements_partitions = implements({
|
||||
b'partition', b'listpartitions', b'newpartition',
|
||||
}, expectedFailure=True)
|
||||
|
|
|
|||
Loading…
Reference in a new issue