Commit Graph

49 Commits

Author SHA1 Message Date
Stein Magnus Jodal
160afbcd26 mpd: Use DummyMixer in tests 2015-02-13 01:22:46 +01:00
Stein Magnus Jodal
e1fa76a48e mpd: Use core.mixer for volume/mute 2015-02-12 10:31:16 +01:00
kingosticks
0de13994c2 Moved MPDUriMapper to own file and updated changelog 2015-02-09 12:07:17 +00:00
kingosticks
317d02de3e Pass MPDUrimapper into mpd test setup 2015-02-08 23:43:22 +00:00
Thomas Adamcik
627b856578 tests: Fix MPD tests helper names 2014-12-30 00:23:08 +01:00
Thomas Adamcik
fa8547c397 tests: Add noqa markers for setUp/tearDown 2014-12-30 00:23:01 +01:00
Thomas Adamcik
a50ba6e3a7 tests: Add noqa markers to custom assert helpers 2014-12-29 23:58:36 +01:00
Stein Magnus Jodal
4e508cd017 mpd: Enable browsing of empty dirs
This was disabled together with a bunch of other changes without any
explanation in commit f24ca36e5a. I'm
guessing that this wasn't intentional, and no test covered the case.
2014-12-13 01:27:14 +01:00
Stein Magnus Jodal
496142c201 py3: Use absolute imports by default 2014-12-07 20:17:10 +01:00
Thomas Kemmer
63277c4db3 Add unit tests for artist browsing 2014-11-04 19:22:45 +01:00
Stein Magnus Jodal
a244761abc mpd: Replace / with | instead of whitespace in playlist names 2014-08-17 23:25:09 +02:00
Trygve Aaberge
9771eda230 mpd: Test that "list album foo" responds correctly
Previously, test_list_album_with_artist_name would only test that the
command didn't fail. Now it also checks that the response is correct.
That is, that the response contains albums.

This makes the test detect the error reported in #817.
2014-08-05 18:34:08 +02:00
Stein Magnus Jodal
93bf3ea918 mpd: Fix crash on wrong number of command args
Fixes #789
2014-07-26 13:56:26 +02:00
Trygve Aaberge
c062dd21c4 mpd: Create unique names for all items in browse
Replace the playlist uri/name mapping with a mapping for all the items
in browse. Check the mapping when browsing a path.

This has the added benefit of serving as a cache for browse, so we don't
need to traverse the path parts and lookup each of them for each call to
browse.
2014-06-24 00:45:49 +02:00
Stein Magnus Jodal
9b9791ab5b Merge pull request #755 from trygveaa/feature/lsinfo-change-order
mpd: List browse results before playlists in lsinfo
2014-06-22 09:49:00 +02:00
Trygve Aaberge
1ac470c58c mpd: Test that whitespace query parts are ignored 2014-06-22 02:13:14 +02:00
Trygve Aaberge
0c3e5bd71e mpd: Test that empty query parts are ignored 2014-06-21 17:29:41 +02:00
Trygve Aaberge
81898cb709 mpd: Test order of result from lsinfo 2014-06-21 14:42:35 +02:00
Trygve Aaberge
0b7243dce1 mpd: Test albums in listall(info) 2014-06-21 01:52:44 +02:00
Trygve Aaberge
496b3f5552 mpd: Test playlists in listall(info) 2014-06-20 22:16:27 +02:00
Stein Magnus Jodal
b754885064 Fix all import order warnings 2014-05-07 20:08:43 +02:00
Stein Magnus Jodal
5583ca5aba New flake8 version with new checks to conform to 2014-03-29 20:47:42 +01:00
Thomas Adamcik
8756c2bff5 review: Type fixing 2014-02-16 23:17:46 +01:00
Thomas Adamcik
2e6f716b72 Merge branch 'develop' into feature/mpd-tokenized-requests
Conflicts:
	mopidy/mpd/protocol/stored_playlists.py
2014-01-30 22:48:28 +01:00
Stein Magnus Jodal
38d3c6ccf9 models: Make Playlist.last_modified milliseconds since Unix epoch 2014-01-28 23:57:02 +01:00
Thomas Adamcik
f24ca36e5a mpd: Switch browse commands to common helper 2014-01-25 00:42:32 +01:00
Thomas Adamcik
dc8d311bc3 mpd: Complete music db conversion with list 2014-01-24 00:23:05 +01:00
Thomas Adamcik
68aa0b556c mpd: Convert search functions in music db 2014-01-23 23:58:42 +01:00
Thomas Adamcik
8f8bed5b87 mpd: Implement playlistinfo from current playlist 2014-01-23 23:12:25 +01:00
nathanharper
039fc4b681 refactored mpd.protocol.music_db regex
got quote backreference working,
eliminated need for the non-capturing pattern,
fixed problem with quoted fields.
2014-01-22 05:16:38 -05:00
Thomas Adamcik
f7aff706a8 mpd: Move commands tests to mpd directory 2014-01-21 21:14:30 +01:00
Thomas Adamcik
d445740318 mpd: Split out tokenizer and add proper errors. 2014-01-21 21:10:55 +01:00
Thomas Adamcik
455f3dd403 mpd: Write commands helper for tokenized command handling
This provides a class which works as a command registry. Functions are added to
the registry through a method on the class `add`.  Add acts as a decorator
taking in the name of the command and optionally type converters for arguments.

When handling requests, we can now tokenize the line, and then just pass the
arguments to our commands helper. It will lookup the correct handler and apply
any validation before calling the original function.

For the sake of testing the original function is not wrapped. This the
functions, and anything testing them directly can simply assume pre-converted
data as long as type annotations are in place.

A sample usage would be:

    @protocol.commands.add('addid', position=protocol.integer)
    def addid(context, uri, position=None)
        pass

    def handle_request(line):
        tokens = protocol.tokenizer(line)
        context = ...
        result = protocol.commands.call(tokens, context=context)
2014-01-19 19:59:07 +01:00
Thomas Adamcik
b34a8c1f73 mpd: Add MPD tokenizer
- Adds tests for correctness of tokenizer (which also would have shown shlex
  wouldn't have worked).
- Should conform with the original's behavior, though we won't be able to match
  the error messages without a lot of extra work as a non-regexp version is
  likely a no go on python due to speed.
2014-01-19 13:47:09 +01:00
Stein Magnus Jodal
1ea0978af5 dummy: Move dummy backend back into the mopidy package 2014-01-18 01:38:10 +01:00
Stein Magnus Jodal
da71d7fb14 Merge pull request #647 from adamcik/feature/browse-by-uri
Convert browse API to be fully URI based.
2014-01-17 15:58:39 -08:00
Stein Magnus Jodal
31abe0bc93 mpd: Annotate exceptions with current command automatically (fixes #649) 2014-01-18 00:34:41 +01:00
Thomas Adamcik
43e16ddb65 mpd: Switch mpd to use path<->uri mapping for browsing 2014-01-17 17:16:24 +01:00
Stein Magnus Jodal
d698653d83 mpd: Implement "listallinfo" command (fixes #145) 2014-01-15 01:11:27 +01:00
Stein Magnus Jodal
afbff12ccc mpd: Implement "listall" command 2014-01-15 00:52:01 +01:00
Stein Magnus Jodal
c781f77ef3 Rename test files to pattern expected by test runners 2014-01-15 00:01:50 +01:00
Thomas Adamcik
03838a1968 mpd: Add tests for adding VFS folders 2014-01-14 23:29:52 +01:00
Stein Magnus Jodal
d724001f5b tests: Move mopidy.backends.dummy to tests.dummy_backend 2014-01-11 15:49:22 +01:00
Stein Magnus Jodal
fe28311324 models: Use new Ref constructors 2014-01-09 08:54:33 +01:00
Stein Magnus Jodal
1fd1a38013 Merge branch 'develop' into feature/library-browse
Conflicts:
	mopidy/backends/local/json/library.py
	mopidy/core/actor.py
	tests/backends/local/library_test.py
2014-01-09 08:39:38 +01:00
kingosticks
0d74be0b1e Empty MPD commands should return an error instead of OK, just like the original MPD server. Includes tests. 2014-01-06 12:33:20 +00:00
Stein Magnus Jodal
af3b0e40fd models: Add Ref.type constants 2014-01-03 22:19:54 +01:00
Stein Magnus Jodal
7dba0dafa5 mpd: Include dirs and files in lsinfo response 2014-01-02 22:06:33 +01:00
Stein Magnus Jodal
1ee534126e mpd: Move mopidy.{frontends => }.mpd 2013-12-31 14:11:16 +01:00