Commit graph

1189 commits

Author SHA1 Message Date
Bruno Cauet
bcd57bd2b5 Test queries building sort management in smartplaylist
Slighly modify Sort parsing: avoid building MultiplSort() instances
comptised of a single sort, but return that sort instead, since it wraps
things with any gain.
2015-03-18 18:53:41 +01:00
Bruno Cauet
45c0c9b3cb Deal with sorting
Try to follow any sort found & manage absence of sort. When there are
multiple sort directives given, concatenate them.

Tests not extended yet.
2015-03-18 18:09:42 +01:00
Bruno Cauet
65b52b9c48 python 2.6 compat: don't use set literals
In smartplaylist and test_smartplaylist.
2015-03-16 19:42:54 +01:00
Bruno Cauet
b79c025142 CLI tests for smartplaylist plugin
No import CLI test.
2015-03-16 18:36:08 +01:00
Bruno Cauet
8b6b938a37 SmartPlaylistPlugin: add unit tests
They're not exhaustive but still quite heavy.
2015-03-16 18:04:00 +01:00
Bruno Cauet
4151e81969 Implement __eq__ for all Query subclasses
Tests are a bit light.
2015-03-16 17:01:14 +01:00
Bruno Cauet
40e793cdb1 Fix flake8 errors 2015-03-16 16:25:43 +01:00
Bruno Cauet
f06c33cb71 Smartplaylist: update only if item changed 2015-03-16 15:16:40 +01:00
Bruno Cauet
02855a44bd Fix exception construction in util.command_output()
`cmd` being a byte string array, it should be joined by b" " and not
u" ".
2015-03-13 11:51:26 +01:00
Bruno Cauet
58b39f1000 Merge branch 'master' into subcommand-auto-format-path 2015-03-05 17:53:31 +01:00
Bruno Cauet
167f067961 Improve behavior of --path: store_true-like
Availability of the 'path' presence in arguments can be important for
some plugins such as duplicates, and therefore should be conserved.
2015-03-05 17:40:32 +01:00
Bruno Cauet
650305c9a1 All suitable plugins use CommonOptionsParser features 2015-03-05 17:03:02 +01:00
Bruno Cauet
38ca99498d Bypass sequential args. parsing for --album
When setting format and using --album we *need* to know whether we're in
album mode. Naively if --album happens after "--format fmt" then we'll
set Item format instead of Album format.
By looking forward for -a/--album we bypass that problem.
2015-03-05 16:42:33 +01:00
Bruno Cauet
5623d26a91 Add tests for the CommonOptionsParser
Unit test both the features & do real behaviour tests with the 'list'
command.
2015-03-05 16:42:03 +01:00
Bruno Cauet
f14f47f059 Renamed list_format_* into format_* 2015-03-04 16:51:28 +01:00
Bruno Cauet
5a355201d3 test_replaygain: fix except a, b: → except (a, b): 2015-03-04 15:29:19 +01:00
Bruno Cauet
f8e2ca2c94 Replaygain tests: more careful plugins unloading
When plugins loading as failed plugins unloading may fail in
consequence, swallowing the loading error. This fixes it.
2015-03-04 15:05:22 +01:00
Bruno Cauet
69786b8538 Fix test.helper.has_program(): encode command
subprocess.subprocess.check_call() should receive a byte string command
otherwise it fails with a UnicodeDecodeError on systems with non-ascii
elements in the system path.

Discovered while reviewing PR #1344.
2015-03-04 15:05:17 +01:00
Adrian Sampson
9c4492752f Fix a test fix 😳 for #1330 2015-03-01 17:33:11 -08:00
Adrian Sampson
31c7c4a877 Avoid a little global state (#1330)
For even clearer interaction with the environment.
2015-03-01 17:11:59 -08:00
Adrian Sampson
e14f28fdda Merge pull request #1330 from brunal/path-query-case-sensitivity
Fix path query case sensitivity

Conflicts:
	docs/changelog.rst
2015-03-01 17:01:45 -08:00
Bruno Cauet
9efcfbb8fa PathQuery: add 'case_sensitivity' param
- fully tested
- default value is platform-aware
2015-03-01 18:10:07 +01:00
Bruno Cauet
cb504ad163 library.parse_query_string: assert query is unicode 2015-03-01 15:01:27 +01:00
Bruno Cauet
952081e5ed Revert "InvalidQueryError: resist to any query"
This reverts commit 9e5e7a28e5.
2015-03-01 14:52:31 +01:00
Adrian Sampson
a4dd46dea3 Merge pull request #1333 from brunal/improve-art-detection
Improve art detection
2015-02-28 19:12:52 -05:00
Adrian Sampson
ccbe907971 Add (skipped) test for #496 2015-02-24 22:18:05 -08:00
Bruno Cauet
88baf1979e Revert "Sometimes the extract art test failed because the file type of the extracted image might be PNG or JPG. Belongs to #1328."
This reverts commit c91e8cb782.
2015-02-20 12:56:43 +01:00
Bruno Cauet
a8477264ac MediaFile: improve cover art detection
Filter media file images on their type.
Detection is still not deterministic when 0 or multiple image
have type ImageType.front.

Fix #1332.
2015-02-20 12:53:43 +01:00
Bruno Cauet
2dec90de7a Fix assertTags() in mediafile tests 2015-02-20 12:52:59 +01:00
mried
c91e8cb782 Sometimes the extract art test failed because the file type of the extracted image might be PNG or JPG. Belongs to #1328. 2015-02-19 19:43:07 +01:00
Adrian Sampson
ccd8a7e1d4 Merge pull request #1328 from mried/extractart-unicode
Fix a crash when extracting album art
2015-02-18 10:33:33 -08:00
Bruno Cauet
9e5e7a28e5 InvalidQueryError: resist to any query
Even though queries may not contain non-utf8 code points
InvalidQueryError ought to be prudent, for such an invalid query would
raise an InvalidQueryError which therefore has to be able to manipulate
the invalid query.
2015-02-18 19:31:07 +01:00
Bruno Cauet
e00d7b7ddc PathQuery: simple utf8 comparison
Test usqge of SQL's substr() with a UTF8 example. The ideal would be to
test with non-UTF8 code points, however it is impossible to perform such
a query: queries can only be unicode or utf8.
2015-02-18 19:28:03 +01:00
Adrian Sampson
6089fb7899 Remove unused import 2015-02-17 17:23:02 -05:00
Adrian Sampson
ca0e9a8c03 Merge pull request #1329 from brunal/play-interactive
play command is now interactive

Conflicts:
	docs/changelog.rst
2015-02-17 17:22:03 -05:00
Adrian Sampson
171ded17b6 Merge pull request #1320 from brunal/multiple-logging-levels
Multiple logging levels
2015-02-17 17:10:31 -05:00
Bruno Cauet
eae98aff0e PathQuery is case-{,in}sensitive on {UNIX,Windows}
PathQuery use LIKE on Windows and instr() = 1 on UNIX.

Fix #1165.
2015-02-17 13:09:04 +01:00
Marvin Steadfast
dd0de2f04b Made the permissions plugin simpler. Got rid of some non-needed code and use the ancestors function instead of writing something new. 2015-02-17 11:41:15 +01:00
Marvin Steadfast
21aedeb51a Updated permissions plugin to change directory permissions too. 2015-02-17 11:41:15 +01:00
Tom Jaspers
12ecb2ce35 Fix formatting to new PEP8 version (1.6.2)
PEP8 1.6.2 (2015-02-15):
- added check for breaking around a binary operator

This caused Travis to fail on "W503 line break before binary operator"
2015-02-16 18:21:56 +01:00
Bruno Cauet
c47221555f Add beets.util.interactive_open() find cmd + execute
interactive_open() takes a target and an optional command, if it does not
receive a command then it uses open_anything().

It parses command and lexes it with shlex.split(), revieling the client
from that task.

"config -e" command uses it, and gives a better error message in case of
problem. "play" plugin uses it as well, as side-effect being that the
command is now interactive, as requested in issue #1321.

Fix issue #1321.
2015-02-16 12:26:17 +01:00
Bruno Cauet
489b6b2e7e Move many tests from test_library to test_util
Sice they only test functions from beets/util/__init__.py there's not
reason for them to reside in test/test_library.py.
2015-02-16 11:53:01 +01:00
Bruno Cauet
5d9128aff3 util.interactive_open() return open/xdg-open/start
Depending on the platform return the correct automatic execution
command.
2015-02-16 11:35:13 +01:00
Malte Ried
b3fc489305 Fixed the flake8 check... 2015-02-15 19:50:11 +01:00
Malte Ried
eafdd9e379 Extraction of cover art of albums with non ascii characters lead to a crash. 2015-02-15 19:39:39 +01:00
Adrian Sampson
494990a7a2 Merge pull request #1322 from tomjaspers/import-metadata-source
Set importer metadata source as field
2015-02-15 09:45:12 -08:00
Tom Jaspers
1555d3fe17 Importer metadata source is saved as flex attr
Saving a file "as is" keeps the data_source attribute unset
2015-02-15 17:46:00 +01:00
Adrian Sampson
296c2fc3de Merge pull request #1325 from brunal/master
Delete 'format' variables that shadow the built-in
2015-02-13 17:50:46 -08:00
Tom Jaspers
9cdd541943 Error handling for 'filesize' field
- Logs a warning and returns 0 if getsize fails
- Add tests for this

Fix #1326
2015-02-13 12:24:21 +01:00
Bruno Cauet
e1e46df1b3 Fix path truncation test: really use bytes
Test is to use bytes but because of __future__.unicode_literals it used
unicode.
2015-02-12 11:56:54 +01:00