mpd: Stub channel commands

This commit is contained in:
Stein Magnus Jodal 2012-12-15 01:44:20 +01:00
parent b95c8032de
commit b43fc2ebe9
5 changed files with 108 additions and 2 deletions

View File

@ -23,6 +23,9 @@ v0.11.0 (in development)
- Add support for ``searchaddpl`` command added in MPD 0.17.
- Add empty stubs for channel commands for client to client communication,
which was added in MPD 0.17.
v0.10.0 (2012-12-12)
====================

View File

@ -30,6 +30,14 @@ Audio output
:members:
Channels
--------
.. automodule:: mopidy.frontends.mpd.protocol.channels
:synopsis: MPD protocol: channels -- client to client communication
:members:
Command list
------------

View File

@ -74,6 +74,7 @@ def load_protocol_modules():
"""
# pylint: disable = W0612
from . import ( # noqa
audio_output, command_list, connection, current_playlist, empty,
music_db, playback, reflection, status, stickers, stored_playlists)
audio_output, channels, command_list, connection, current_playlist,
empty, music_db, playback, reflection, status, stickers,
stored_playlists)
# pylint: enable = W0612

View File

@ -0,0 +1,69 @@
from __future__ import unicode_literals
from mopidy.frontends.mpd.protocol import handle_request
from mopidy.frontends.mpd.exceptions import MpdNotImplemented
@handle_request(r'^subscribe "(?P<channel>[A-Za-z0-9:._-]+)"$')
def subscribe(context, channel):
"""
*musicpd.org, client to client section:*
``subscribe {NAME}``
Subscribe to a channel. The channel is created if it does not exist
already. The name may consist of alphanumeric ASCII characters plus
underscore, dash, dot and colon.
"""
raise MpdNotImplemented # TODO
@handle_request(r'^unsubscribe "(?P<channel>[A-Za-z0-9:._-]+)"$')
def unsubscribe(context, channel):
"""
*musicpd.org, client to client section:*
``unsubscribe {NAME}``
Unsubscribe from a channel.
"""
raise MpdNotImplemented # TODO
@handle_request(r'^channels$')
def channels(context):
"""
*musicpd.org, client to client section:*
``channels``
Obtain a list of all channels. The response is a list of "channel:"
lines.
"""
raise MpdNotImplemented # TODO
@handle_request(r'^readmessages$')
def readmessages(context):
"""
*musicpd.org, client to client section:*
``readmessages``
Reads messages for this client. The response is a list of "channel:"
and "message:" lines.
"""
raise MpdNotImplemented # TODO
@handle_request(
r'^sendmessage "(?P<channel>[A-Za-z0-9:._-]+)" "(?P<text>[^"]*)"$')
def sendmessage(context, channel, text):
"""
*musicpd.org, client to client section:*
``sendmessage {CHANNEL} {TEXT}``
Send a message to the specified channel.
"""
raise MpdNotImplemented # TODO

View File

@ -0,0 +1,25 @@
from __future__ import unicode_literals
from tests.frontends.mpd import protocol
class ChannelsHandlerTest(protocol.BaseTestCase):
def test_subscribe(self):
self.sendRequest('subscribe "topic"')
self.assertEqualResponse('ACK [0@0] {} Not implemented')
def test_unsubscribe(self):
self.sendRequest('unsubscribe "topic"')
self.assertEqualResponse('ACK [0@0] {} Not implemented')
def test_channels(self):
self.sendRequest('channels')
self.assertEqualResponse('ACK [0@0] {} Not implemented')
def test_readmessages(self):
self.sendRequest('readmessages')
self.assertEqualResponse('ACK [0@0] {} Not implemented')
def test_sendmessage(self):
self.sendRequest('sendmessage "topic" "a message"')
self.assertEqualResponse('ACK [0@0] {} Not implemented')