Thomas Adamcik
8cc9c9bbc0
core: Rename list_distinct to get_distinct
2015-03-02 22:41:09 +01:00
Thomas Adamcik
5fd2afa7ca
mpd: Switch list command to using list_distinct
2015-03-02 00:26:51 +01:00
Stein Magnus Jodal
0634de6e28
Merge pull request #1020 from adamcik/feature/fix-ws-disconnect-race
...
Fix WS disconnect race
2015-03-02 00:16:09 +01:00
Thomas Adamcik
0fb6c620df
docs: Add changelog entry for broadcast race
2015-03-02 00:05:58 +01:00
Thomas Adamcik
4ee7dd73bd
http: Make WS broadcast more robust against disconnect race
...
Adds some WebSocketHandler tests that actually connect using a WS client and
plugs a potential race condition.
Any call to write_message could fail, either due to WebSocketClosedError like
in the log below, or simply due to socket errors. To play it safe we catch all
errors and debug log that a broadcast failed.
2015-02-26 21:24:02,266 ERROR [HttpServer] /home/adamcik/dev/mopidy/mopidy/http/handlers.py:116
mopidy.http.handlers WebSocket request error: deque index out of range
2015-02-26 21:24:10,098 ERROR [HttpFrontend-11] build/bdist.linux-x86_64/egg/pykka/actor.py:268
pykka Unhandled exception in HttpFrontend (urn:uuid:e376bd95-c32e-4e17-ad20-7d0b3c0cf2b2):
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/pykka/actor.py", line 200, in _actor_loop
response = self._handle_receive(message)
File "build/bdist.linux-x86_64/egg/pykka/actor.py", line 294, in _handle_receive
return callee(*message['args'], **message['kwargs'])
File ".../dev/mopidy/mopidy/http/actor.py", line 77, in on_event
on_event(name, **data)
File ".../dev/mopidy/mopidy/http/actor.py", line 84, in on_event
handlers.WebSocketHandler.broadcast(message)
File ".../dev/mopidy/mopidy/http/handlers.py", line 78, in broadcast
client.write_message(msg)
File ".../dev/mopidy-virtualenv/local/lib/python2.7/site-packages/tornado/websocket.py", line 183, in write_message
raise WebSocketClosedError()
WebSocketClosedError
2015-03-02 00:05:21 +01:00
Lasse Bigum
fbd534efbf
Don't change to playing state when seeking in paused state
...
Do not switch state from paused to playing when seeking
2015-03-01 15:50:17 +01:00
Thomas Adamcik
47911f24ea
Merge pull request #1013 from tkem/fix/get_images
...
backend: Improve default get_images() implementation with album/artist URIs.
2015-02-28 12:35:16 +01:00
Thomas Kemmer
301f732047
Improve default get_images() implementation with album/artist URIs.
2015-02-27 22:22:28 +01:00
Stein Magnus Jodal
5536c79be5
Merge pull request #1005 from adamcik/fix/808
...
Add per logger colors
2015-02-25 23:18:08 +01:00
Thomas Adamcik
b11d89d72f
config: Convert the loglevel schema to a generic map schema
2015-02-25 21:36:59 +01:00
Thomas Adamcik
0829f34a90
Merge pull request #999 from tkem/fix/998
...
Fix #998 : Remove event already sent by PlaylistsController.
2015-02-25 21:05:53 +01:00
Thomas Kemmer
dd54fdb086
Fix #937 : Local playlists refactoring.
2015-02-25 18:50:29 +01:00
Thomas Kemmer
96a3cb6ef5
Remove obsolete unit test.
2015-02-25 17:48:41 +01:00
Stein Magnus Jodal
255d92f21f
Merge pull request #992 from adamcik/feature/default-get-images-fallback
...
backend: Add a default get_images impl.
2015-02-18 22:13:10 +01:00
Thomas Adamcik
2ff2a3719e
backend: Add test for get_images fallback
2015-02-18 21:55:39 +01:00
Thomas Adamcik
e4ba4b3e5f
mpd: Support blacklisting MPD commands in the server.
...
Default blacklist set to listall and listallinfo.
This change has been done to avoid clients being able to call "bad" MPD
commands which are often misused to try and keep a client db. Note that
this change will break some MPD clients, but the blacklist can be controlled
via config to allow opting out for now.
2015-02-18 00:13:24 +01:00
Ali Ukani
ead147f482
Fix flake8 errors, prepare for Python 3 port
...
Fixes flake8 warnings
Reword docstring for find_exact
Use range instead of xrange in preparation for porting to Python 3
2015-02-16 02:24:40 -05:00
Ali Ukani
fc21d466f0
local: use limit and offset when searching json library
...
Fixes the json local library's search behavior. Uses limit and offset
arguments when returning search results.
2015-02-16 02:24:40 -05:00
Stein Magnus Jodal
5270aa65e2
audio: Move DummyAudio into tests package
2015-02-13 10:40:21 +01:00
Stein Magnus Jodal
b554a64aad
mixer: Move DummyMixer into tests package
2015-02-13 01:37:07 +01:00
Stein Magnus Jodal
df95a988b7
backend: Move DummyBackend into tests package
2015-02-13 01:37:07 +01:00
Stein Magnus Jodal
160afbcd26
mpd: Use DummyMixer in tests
2015-02-13 01:22:46 +01:00
Stein Magnus Jodal
886c2b92d8
core: Use a mixer mock in tests
2015-02-13 01:15:25 +01:00
Stein Magnus Jodal
333bc69777
jsonrpc: Don't use mixer in tests
2015-02-13 01:15:15 +01:00
Stein Magnus Jodal
7aede98fda
Merge pull request #982 from adamcik/feature/use-proxy-in-stream-scanner
...
Use proxy in stream scanner
2015-02-13 01:04:09 +01:00
Thomas Adamcik
0e4e872d6b
stream: Hook stream scanner up to proxy settings
2015-02-13 00:52:20 +01:00
Stein Magnus Jodal
638740541b
Merge pull request #981 from adamcik/feature/core-get-images
...
Add library.get_images()
2015-02-13 00:33:29 +01:00
Thomas Adamcik
ddd872cdea
core: Always return an answer for all URIs in get_images
...
Also make sure that results are tuples instead of lists so we don't
accidentally give out mutable state.
2015-02-13 00:10:14 +01:00
Thomas Adamcik
3cb9eb52f0
Merge pull request #975 from jodal/feature/core-mixer
...
Add core.mixer replacing playback mixer methods.
2015-02-12 23:50:04 +01:00
Thomas Adamcik
533948f8f8
core: Make sure we return list of images in get_images tests
2015-02-12 23:10:20 +01:00
Thomas Adamcik
b1b6fb7808
tests: Re-add incorrectly removed test case
2015-02-12 23:08:27 +01:00
Thomas Adamcik
c0b0e3657a
core: Add core.library.get_images
2015-02-12 22:38:42 +01:00
Stein Magnus Jodal
e938fb0a7f
Merge pull request #965 from ZenithDK/fix/flake-lambda
...
flake8: fix PEP8 warnings about lambda
2015-02-12 22:22:53 +01:00
Lasse Bigum
34ada2784a
flake8: fix PEP8 warnings about lambda
...
Fix the 'lambda to def' warnings
2015-02-12 22:10:36 +01:00
Thomas Adamcik
05b66ba4a3
models: Add basic image model
2015-02-12 22:02:59 +01:00
Stein Magnus Jodal
df67d708db
config: Add support for 'all' loglevel
...
Equal to logging.NOTSET or 0 in the logging module.
2015-02-12 18:12:33 +01:00
Stein Magnus Jodal
e1fa76a48e
mpd: Use core.mixer for volume/mute
2015-02-12 10:31:16 +01:00
Stein Magnus Jodal
91bcdddf56
tests: Use core.mixer for volume/mute
2015-02-12 10:31:16 +01:00
Stein Magnus Jodal
42115c56f7
core: Add mixer controller ( fixes : #962 )
...
Deprecate volume and mute methods on playback controller.
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
Lasse Bigum
4bf7a568d1
Check that config is readable
...
Implement a check on file permissions for the config files that are loaded
and print debug if mopidy fails to load it due to missing file file permissions
2015-02-07 17:47:20 +01:00
Stein Magnus Jodal
a693993905
flake8: Fix new warnings after flake8 upgrade
2015-02-07 17:11:36 +01:00
Ali Ukani
dac5f9e406
Add test for exact search with album query
2015-01-05 23:24:52 -05:00
kingosticks
1e7a4247c6
Add non-ascii utf-8 chars to test playlists
2015-01-04 20:21:10 +00:00
Thomas Adamcik
ab49d75a45
tests: Fix outstanding flake8 errors in tests
2014-12-30 00:23:08 +01: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
Thomas Adamcik
9f6e0cc5fa
tests: Fix versions test pep8 naming errors
2014-12-29 23:48:59 +01:00
Thomas Adamcik
656f7e976f
Merge branch 'develop' into feature/taglist-converter
...
Conflicts:
docs/changelog.rst
2014-12-25 22:46:44 +01:00
Stein Magnus Jodal
890ed53ee6
Merge branch 'release/v0.19.x' into develop
...
Conflicts:
docs/changelog.rst
2014-12-24 00:41:10 +01:00
Stein Magnus Jodal
6af624a369
Bump version to 0.19.5
2014-12-24 00:37:33 +01:00
Stein Magnus Jodal
dbbb86e6c0
Merge branch 'release/v0.19.x' into develop
...
Conflicts:
mopidy/core/playback.py
2014-12-24 00:24:19 +01:00
Stein Magnus Jodal
c6ff9eee86
playback: Remove skipped track on next in consume mode
...
Also adds core level tests of consume behavior on next/prev/eot.
Fixes #902
2014-12-24 00:04:41 +01:00
Stein Magnus Jodal
6ec35b2d02
Merge branch 'release/v0.19.x' into develop
2014-12-23 22:23:32 +01:00
Stein Magnus Jodal
aa3b8ab5f8
path: Support unicode content when creating file
2014-12-23 22:21:10 +01:00
Thomas Adamcik
935a038405
audio: Only add albums that have a name
...
Fixes case where we could have an empty album. We could alternatively be more
conservative and only limit to fully empty albums. But I think we only want
ones with names anyway.
2014-12-22 22:45:31 +01:00
Thomas Adamcik
819680e074
audio: Move utils test to tests folder
2014-12-22 22:34:11 +01:00
Thomas Adamcik
9b9cdc3ade
stream: Fix track conversion bug and add tests
...
This adds basic checks for the library provider lookup:
- Check that uri schemes are respected
- Check that blacklisting and globbing works
- Check uri successfully gets converted to a track
2014-12-22 22:29:36 +01:00
Thomas Adamcik
9be788b129
audio: Move tags to track conversion to audio utils
2014-12-18 23:36:56 +01:00
Thomas Adamcik
983148a9a4
audio: Start storing the tags we find in audio
...
Adds a new get_currents_tags method for fetching the full set of current tags.
There are still some untested cases for this, and I also suspect we still want
some API refinements one core starts using this.
2014-12-18 23:28:19 +01:00
Thomas Adamcik
6c62252919
audio: Add tags changed event to audio.
...
Current version simply emits the keys of the changed tags to the audio
listener. Following change will add support for storing the actual data.
2014-12-18 23:28:19 +01:00
Thomas Adamcik
de6bd63481
audio: Remove min duration code from scanner.
...
The local scanner now handles this itself by looking at the duration.
2014-12-18 23:28:19 +01:00
Thomas Adamcik
4f8244c499
audio: Convert audio_data_to_track to tags_to_track
...
The new function only uses tags as input. In other words we now need to set
length, uri and mtime ourselves. Users of scan APIs have been updated.
2014-12-18 23:28:19 +01:00
Thomas Adamcik
4948dee4b9
audio: Make scanner return duration in milliseconds
...
Also ensures that we normalize unknown duration to None instead of -1.
2014-12-18 23:28:19 +01:00
Thomas Adamcik
d9d501cd98
audio: Update scanner to just return tags+duration
...
The caller should know what URI we are talking about. Additionally finding the
mtime is never belonged in this class and has been moved out.
2014-12-18 23:28:19 +01:00
Thomas Adamcik
dcaa0f6732
local: Move musicbrainz cover art helper to translator
2014-12-18 23:28:14 +01:00
Thomas Adamcik
b365d2494b
mpd: Remove "Comment" tag type from translator output.
...
Newer versions of the protocol have removed this tag, so we should as well.
This also works around the issue of #881 which was breaking things with
newlines in comment fields.
The readcomments command seems to replace this, but it seems to only care about
specific extra tagtypes, not the general comment tag we normally collect when
scanning things.
(cherry picked from commit 08a8d5c43b )
2014-12-16 23:30:38 +01:00
Stein Magnus Jodal
6e55435aa9
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.
(cherry picked from commit 4e508cd017 )
2014-12-16 23:25:31 +01:00
Thomas Adamcik
90fdd46109
local: Cleanup translator tests
2014-12-14 23:14:11 +01:00
Thomas Adamcik
671ee5ee6a
audio: Switch to using converted taglists instead of raw data.
2014-12-14 22:25:52 +01:00
Thomas Adamcik
08a8d5c43b
mpd: Remove "Comment" tag type from translator output.
...
Newer versions of the protocol have removed this tag, so we should as well.
This also works around the issue of #881 which was breaking things with
newlines in comment fields.
The readcomments command seems to replace this, but it seems to only care about
specific extra tagtypes, not the general comment tag we normally collect when
scanning things.
2014-12-14 14:16:37 +01:00
Thomas Adamcik
2c3217685b
utils: Switch to exceptions.FindError for errors.
2014-12-14 14:08:45 +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
4f428b8601
py3: Move compat module out of utils
2014-12-07 21:36:15 +01:00
Stein Magnus Jodal
7a1bb224f7
py3: Avoid indexing exception objects
...
It doesn't work on Python 3.
2014-12-07 20:26:09 +01:00
Stein Magnus Jodal
58527406c1
py3: Use compat.text_type instead of unicode
2014-12-07 20:17:10 +01:00
Stein Magnus Jodal
496142c201
py3: Use absolute imports by default
2014-12-07 20:17:10 +01:00
Stein Magnus Jodal
680dbffc0c
models: Make all fields default to None or empty collection
...
(cherry picked from commit abed15b9e4 )
2014-11-04 21:27:29 +01:00
Stein Magnus Jodal
a4b17a9aa8
models: Fix equality for fields set to the default
...
Fixes #837
(cherry picked from commit bdd1fb983b )
2014-11-04 20:17:20 +01:00
Stein Magnus Jodal
88d64044de
models: Hide empty lists from repr()
...
(cherry picked from commit 305a76486d )
Conflicts:
docs/changelog.rst
2014-11-04 20:17:13 +01:00
Thomas Kemmer
63277c4db3
Add unit tests for artist browsing
2014-11-04 19:22:45 +01:00
Thomas Adamcik
063c757570
utils/path: Add support for handling sym/hardlink loops
2014-10-15 23:46:08 +02:00
Thomas Adamcik
54a89038d3
utils/path: Don't skip hidden files and folders in generic find code
...
Updates the local scan code to do this instead.
2014-10-15 23:45:49 +02:00
Thomas Adamcik
9b1d20677d
tests: Cleanup find tests to use tempfile all over.
...
This should make it more clear what structure we expect.
2014-10-15 23:45:27 +02:00
Thomas Adamcik
69fa6f4674
tests: Test symlink that points to it's own parent.
2014-10-15 23:45:22 +02:00
Thomas Adamcik
93c0d6cc44
tests: Update no permission test to use tempfile.
2014-10-15 23:45:12 +02:00
Thomas Adamcik
b2419f9814
tests: Add test case for a symlink pointing at itself
2014-10-15 23:45:03 +02:00
Thomas Adamcik
ebb62885cd
util/path: Add basic support for following symlinks
2014-10-15 23:44:48 +02:00
Thomas Adamcik
682af27348
tests: Add test case for file without permissions.
2014-10-15 23:44:41 +02:00
Thomas Adamcik
d219bab0b2
tests: Add test for directory without permission behaviour
2014-10-15 23:44:01 +02:00
Thomas Adamcik
de5fe5ebab
tests: Add test for current find symlink handling
2014-10-15 23:43:13 +02:00
Thomas Adamcik
a8017dfef1
tests: Start adding checks for find errors
2014-10-15 23:42:36 +02:00
Thomas Adamcik
de4bdbec03
tests: Minor cleanup of the existing find tests
2014-10-15 23:42:15 +02:00
Thomas Adamcik
2447e2fa40
util/path: Expose errors to callers of find helper
2014-10-15 23:42:12 +02:00
Stein Magnus Jodal
7856c14b26
tests: Use with stmt for assertRaises
2014-09-25 23:03:35 +02:00
Stein Magnus Jodal
07d088fc18
models: Use with stmts in exception tests
2014-09-24 18:26:25 +02:00
Stein Magnus Jodal
5317834baf
history: Change size property to get_length() method
...
For consistency with tracklist.get_length() and our goal of aligning Python
and JS APIs by using less properties in the core API.
2014-09-23 18:47:54 +02:00
Stein Magnus Jodal
5a67339855
history: Cleanup history entry test
2014-09-23 18:47:39 +02:00