Commit Graph

1789 Commits

Author SHA1 Message Date
Thomas Adamcik
41d48dc0ec audio: Stop mocking in audio event tests 2015-01-24 00:49:02 +01:00
Thomas Adamcik
b0aebaf993 core: Make sure current_tl_track changes on stream change
- Adds stream changed handler to core
- Moves playback started trigger to stream changed
- Made about to finish store next track in _pending_tl_track
- Set the pending track as current in stream changed
- Adds tests for all of this and fixes existing tests
2015-01-23 00:14:30 +01:00
Thomas Adamcik
49f16704d8 core: Remove on_end_of_track from playback
This has been replaced by on_about_to_finish and on_end_of_stream.
Tests have been updated to reflect these changes.
2015-01-22 23:16:51 +01:00
Thomas Adamcik
82bf1c0eb9 core: Move core.playback.on_end_of_track off change_track helper
Only handles the playing case, unlike the previous and next changes. It should
also be noted that this is just a temporary state on the road to making this
method handle gapless.
2015-01-21 23:15:42 +01:00
Thomas Adamcik
4a39671ee7 core: Move core.playback.previous off change_track helper
Same fix as for core.playback.next and mostly the same caveats.
2015-01-21 23:07:47 +01:00
Thomas Adamcik
bbb3301a98 core: Move core.playback.next off change_track helper
Note that since this doesn't use play via change_track we have to copy over the
tracking code and make sure it is only run for the playing case
2015-01-21 23:02:06 +01:00
Thomas Adamcik
9fc319055c backend: Change playback API (breaking change)
While trying to remove traces of stop calls in core to get gapless working I
found we had no way to switch to switch tracks without triggering a play. This
change fixes this by changing the backends playback provider API.

- play() now _only_ starts playback and does not take any arguments.
- prepare_change() has been added, this could have been avoided with a kwarg to
  change_track(track), but that would break more backends.
- core has been updated to call prepare_change+change_track+play as needed.
- tests have been updated to handle this change.

Longer term I hope to completely rework the playback API in backends, as 99% of
our backends only use change_track(track) to translate URIs. So we should make
simple case simple, and handle mopidy-spotify / appsrc in some other way.
2015-01-21 22:13:41 +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