Commit graph

1597 commits

Author SHA1 Message Date
Diego Moreda
51bf6a1c9f Add documentation for NotQuery, cleanup
* Add changelog and query.rst documentation entries for the usage of negated
queries.
* Cleanup NotQuery class as suggested during code review (PEP conforming
docstring, clarification on empty clause match behaviour).
2015-11-20 18:06:22 +01:00
Adrian Sampson
f995ab38db Fix a test and a bug revealed by a test 2015-11-19 16:11:45 -08:00
Adrian Sampson
6a99eaae35 Fix a test for the new output format 2015-11-19 15:45:06 -08:00
Peter Kessen
6b408507f6 added encoding as comment in files
added line like
# -*- coding: utf-8 -*-
to all files without license
2015-11-19 18:52:57 +01:00
Peter Kessen
3eb8008b11 added encoding as comment in files
added line like
# -*- coding: utf-8 -*-
to all files with correct license in header
2015-11-19 18:41:01 +01:00
Diego Moreda
40bfed756b Revise not query syntax, cleanup, modify docstring
* Revise the NotQuery syntax, replacing the '¬' character with '^'. Fix tests
to conform to this change, and cleanup the PARSE_QUERY_PART_REGEX.
* Modify parse_query_part() docstring to mention the negate parameter on the
returned tuple, and added an example.
2015-11-19 18:04:47 +01:00
Diego Moreda
e69b3b3c5d Fix NotQuery assertion by using sets, not lists
* Fix issue with an assertion that was order-sensitive and caused a problem on
some tox runs.
2015-11-18 17:40:47 +01:00
Diego Moreda
e457479558 Add NotQuery syntax tests
* Add tests to NotQueryTest for testing the results of using queries with
negation.
* Fix issue on test_dbcore due to the modifications on the tuple returned by
parse_query_part (the number of elements was changed from 3 to 4).
2015-11-18 17:27:22 +01:00
Diego Moreda
dd8b80e320 Make NotQuery subclass Query, update tests
* Modify NotQuery so it subclasses Query instead of MutableCollectionQuery.
* Update instances where NotQuery objects are created on tests and queryparse,
as NotQuery expects a single Query as a parameter to the constructor instead of
a list of Queries.
2015-11-18 14:54:20 +01:00
Adrian Sampson
8e9d335a87 Tear down Item.write mock 2015-11-17 10:26:36 -08:00
Adrian Sampson
0d459752d9 Update edit plugin tests 2015-11-16 13:55:12 -08:00
Diego Moreda
f2c8e9ff07 Add "not" query operator, initial draft
* Add support for user friendly "not" operator in queries without requiring to
use regular expressions, via adding NotQuery to beets.dbcore.query.
* Update the prefix list at library.parse_query_parts() and the query parsing
mechanisms in order to create a NotQuery when the prefix is found.
* Add two TestCases, NotQueryMatchTest as the negated version of MatchTest, and
the more generic NotQueryTest for testing the integration of the NotQuery with
the rest of the existing Query subclasses.
2015-11-16 21:36:42 +01:00
Diego Moreda
e31680123b edit: update extra fields in yaml test
* Update test for extra fields in edited yaml, allowing the user to add fields
while editing. Rename the test to test_single_edit_add_field to reflect its
purpose more accurately.
2015-11-16 14:46:13 +01:00
Diego Moreda
2adf70209f edit: add test for extra fields on user yaml
* Add test_invalid_yaml_extra_field, testing the handling of user appended
fields (in particular, a non existing field) during the yaml editing.
2015-11-15 18:36:24 +01:00
Diego Moreda
5f2e5d73cc edit: update unit tests
* Update unit tests in order to reflect the changes on the last refactor of
edit.py (patch edit.edit instead of EditPlugin.get_editor, revise stdin strings
to match current version, remove TODO on docstrings from malformed and invalid
yaml tests).
2015-11-15 18:09:20 +01:00
Adrian Sampson
72b26235ad Merge branch 'master' into editor 2015-11-14 13:28:04 -08:00
Adrian Sampson
e3f7da5467 Update test for simpler interactive_open 2015-11-14 13:26:04 -08:00
Adrian Sampson
9c968456c1 Fix #1666: malformed binary data in SoundCheck 2015-11-13 12:21:36 -08:00
Diego Moreda
d9ebb3409a edit: add album query tests, revise failing ones
* Add tests for executing the command with album queries (-a), testing the edit
of album and albumartist fields.
* Revise invalid and malformed yaml tests so they return a failure instead of
an error.
2015-11-11 15:50:32 +01:00
Diego Moreda
6e6aa9700d edit: more assertions on existing tests, new tests
* Modify existing tests in order to explicitely check for differences (or lack
of) in the items fields, with the intention to ensure that no unintended changes
slip through.
* Added tests for modifying a single item from a list of items, and for editing
the album field of the items (stub for discussing whether the actual album
should be updated, etc).
2015-11-10 19:16:04 +01:00
Marvin Steadfast
4b2b9fe2ce Added embyupdate plugin
Its a simple plugin that triggers a library refresh after the library
got changed. It does the same thing like the plexupdate plugin.
2015-11-10 10:15:01 +01:00
Diego Moreda
41b4987990 edit: add initial black-box tests
* Add tests for the edit plugin, including a helper for bypassing the manual
yaml editing. Tests are focused on "black-box" functionality, running the
command and making assertions on the changes made to the library.
2015-11-09 21:51:14 +01:00
reiv
81a72f74c9 Merge branch 'master' into 314-reimport-art 2015-11-04 18:37:06 +01:00
reiv
314dd0e6bc Update re-import test to leave no orphaned art
Make sure that when an album is re-imported and its files are
moved, the artwork isn't left behind in the old folder.
2015-11-03 23:10:01 +01:00
reiv
21f926fb89 Add test for #314
Ensure that album art is preserved when an album is re-imported.
2015-11-03 22:38:13 +01:00
reiv
1625dfc17e Merge branch 'master' into 1264-unnecessary-resize 2015-11-03 02:46:33 +01:00
reiv
93009911e0 fetchart: Add test for image resizing
This test ensures that images are resized if and only if they are
wider than the maxwidth setting.
2015-11-03 02:17:21 +01:00
reiv
d0cfb3e990 fetchart: add test for re-fetching deleted art
This test addresses #1126.
2015-11-02 02:20:09 +01:00
Adrian Sampson
9bf95bf634 Some test code cleanup for #1586 2015-10-07 15:50:32 -07:00
Adrian Sampson
3b604c7ff9 Merge pull request #1586 from mried/RobustCaseSensitiveDetection
A robust way to check for a case sensitive file system
2015-10-07 15:43:38 -07:00
Peter Kessen
60e225deae corrected test for logging see #1627 2015-09-30 20:02:32 +02:00
Adrian Sampson
092472d750 Merge pull request #1623 from pkess/test_init
New tests for human readable values
2015-09-30 09:18:32 -07:00
Peter Kessen
b980c60941 corrected another testcase for previous commit 2015-09-29 17:40:57 +02:00
Peter Kessen
fffb727033 corrected output of file size
using unit e.g. 5.4 KiB instead of 5.4 KB now
2015-09-29 17:33:54 +02:00
Adrian Sampson
f98dc8a432 Merge pull request #1627 from pkess/addLoggingTest
added test for logging
2015-09-28 08:24:46 -07:00
Peter Kessen
9c34bde456 added test for logging 2015-09-27 20:16:39 +02:00
Peter Kessen
21f1f53fea added test for bucket plugin 2015-09-27 14:45:17 +02:00
Peter Kessen
9adb398198 removed useless io handler in test 2015-09-27 12:16:15 +02:00
Peter Kessen
770e89ab65 fixed suggestions by travis 2015-09-27 12:04:42 +02:00
Peter Kessen
8202658706 added test for human_bytes 2015-09-27 11:51:21 +02:00
Peter Kessen
40ec848133 moved test to other file
moved the tests of ui/__init__ to a new test file
2015-09-27 11:27:07 +02:00
Peter Kessen
f246a71e7b Merge branch 'master' into test_init
Conflicts:
	test/test_ui_commands.py
2015-09-27 11:12:38 +02:00
Peter Kessen
b293d6ad88 added test for human_seconds 2015-09-25 17:41:12 +02:00
Peter Kessen
59a1f8be01 extended test_fields_func to check output 2015-09-25 17:15:50 +02:00
Peter Kessen
8fc292bc44 Using LibTestCase instead of TestCase 2015-09-25 16:37:39 +02:00
Peter Kessen
888655413d added testcase for fields command
first check of function without check of consistent output
2015-09-20 12:54:46 +02:00
Peter Kessen
0f57c4acd5 fixed spaces at end of lines 2015-09-17 20:46:32 +02:00
Peter Kessen
db2ce36cc3 improved readability of test
implemented suggested method from @sampsyo
2015-09-17 20:31:37 +02:00
Peter Kessen
a9a49c6846 again ignoring unused return values 2015-09-17 13:08:34 +02:00
Peter Kessen
f46cc7d131 ignoring unused return values 2015-09-17 13:05:25 +02:00
Peter Kessen
c63db558e9 removed useless install of IO capture
This was introduced by a copy and paste from other code. I removed it now
2015-09-17 12:55:57 +02:00
Peter Kessen
d607ae7adc using asserRaises in test instead of previous workaround
used a workaround with try and except to check for a raised Exception before
2015-09-17 12:50:30 +02:00
Peter Kessen
57452624ae using local variable instead of object attribute 2015-09-17 12:47:22 +02:00
Peter Kessen
6fdf93b59d changed name of method to lowercase: add_item 2015-09-17 12:43:22 +02:00
Peter Kessen
4756f2878a corrected description of test case 2015-09-16 22:18:24 +02:00
Peter Kessen
be583cd63e added test for beets.ui.commands
* added test of _do_query method
2015-09-16 22:11:39 +02:00
Adrian Sampson
f4a124e7e2 Fix #1605: parsing bare + and - in queries 2015-09-15 13:53:41 -07:00
Jack Wilsdon
46e5f9d4c8 Update tests to follow PEP 8 coding style 2015-09-11 18:39:15 +01:00
Jack Wilsdon
276c5da913 Remove unused logging import 2015-09-11 18:37:20 +01:00
Jack Wilsdon
0af47bff44 Add tests for hook plugin 2015-09-11 18:11:30 +01:00
Malte Ried
ff9dc07589 Merge branch 'master' into RobustCaseSensitiveDetection 2015-09-11 12:38:50 +02:00
Jack Wilsdon
b1cef2606b Delete the artwork file if the test failed 2015-09-10 22:48:47 +01:00
Jack Wilsdon
2f333968c5 Add test for removing art files (remove_art_file property) (#1591) 2015-09-10 22:18:13 +01:00
Jack Wilsdon
622c5d1e0f Fix unexpected spaces around keyword / parameter equals 2015-09-10 05:14:07 +01:00
Jack Wilsdon
7a70bd3b81 Add test for custom named music section (library_name property) (#1595) 2015-09-10 05:08:16 +01:00
Jack Wilsdon
4a225ee291 Allow a custom music section name to be provided when generating a response 2015-09-10 05:07:14 +01:00
Jack Wilsdon
2b37d8f775 Add library_name parameter to plexupdate tests 2015-09-08 14:50:49 +01:00
Malte Ried
42f99999f2 Improved the case sensitivity detection test. 2015-09-07 12:28:19 +02:00
Malte Ried
58ddecf7af Added a Patch decorator for the os.path.samefile function to repair some previously failed test cases. 2015-09-04 18:34:43 +02:00
nath@home
9c663432bd Refactor util/interactive_open: multiple targets
interactive_open should now be invoked with at least the list of
targets and optionally the command to open the targets with.
This allows beets-play to pass multiple file paths directly to
the configured command.

The changes to the existing invocations are pretty trivial in
order to comply to this refactor.
2015-09-01 23:42:42 +02:00
Adrian Sampson
6866019cb3 Merge pull request #1558 from raymondwanyoike/unicode-support
Support paths with non ASCII characters
2015-08-03 08:43:22 -07:00
Raymond Wanyoike
2490863042 Fix unicode paths in permissions test 2015-08-03 16:21:46 +03:00
Adrian Sampson
7d55126070 Merge pull request #1397 from multikatt/ipfs
Ipfs plugin
2015-08-02 18:39:55 -07:00
Adrian Sampson
5bf82f8670 Merge pull request #1545 from nathdwek/fix-jpeg-detection
Embedart: fails on some jpegs because imghdr doesn't recognize the mimetype
2015-07-27 11:36:54 -07:00
nath@home
68ec8294e4
smaller test image for fix-jpeg-detection 2015-07-21 21:18:57 +02:00
nath@home
fc507faee2 added comment to the test 2015-07-21 19:53:20 +02:00
nath@home
b444ec496c
simple testing for wider_jpeg_detection now done in test_mediafile_edge.py 2015-07-21 18:40:49 +02:00
David Logie
44a32fe4a9 Remove extra blank line. 2015-07-21 16:54:23 +01:00
David Logie
71d3be238b zero: optionally update tags in the database. 2015-07-21 16:54:23 +01:00
nath@home
4b63848d51
flake8 fix 2015-07-21 17:51:25 +02:00
nath@home
c8d3a6f6fc
added tests 2015-07-21 15:32:43 +02:00
Adrian Sampson
287f0d8cef Fix typo and test bug revealed by mock fix
Mock used to tolerate a mistyped call like `assert_calledwith` when we meant
`assert_called_with` silently. This seems to be fixed. Fixing the typo
revealed that the assertion was actually wrong, so I fixed that too.
2015-07-13 16:34:09 -07:00
Ben Ockmore
de17d000bd Rewrote path legalization code to be two module functions rather than class methods. Also made algorithm more predictable, and added an extra test. 2015-07-07 01:17:12 +01:00
Ben Ockmore
d07c8fde69 Added loop to iterate over sanitize/truncate until stable. Enabled test_truncation_does_not_conflict_with_replacement test. Fixes #496. 2015-07-06 14:57:15 +01:00
Tom Jaspers
18bd4471e4 Fix sorting of track numbers when case insensitive
`LOWER()` implicitly converted numerical columns to strings,
causing the ordering of ['1', '10', '2'] to be correct.

The type of the column is now checked in the sql query
using `CASE WHEN..` construct. This ensures the column is
only `LOWER()`'d when dealing with TEXT or BLOB.

- Add a test to check for the track number behavior
- Add changelog entry

Fix #1511
2015-07-05 19:56:14 +01:00
Ed Carroll
f78393aa86 Updated tests to include Plex Token 2015-06-04 01:13:30 +01:00
multikatt
2be0e7715f Adding tests 2015-06-02 23:03:37 -04:00
Markus Unterwaditzer
f82c7ec5d1 Fix test_thumbnails 2015-06-02 00:40:01 +02:00
Tom Jaspers
be484f2af0 Implement --pretend option for the move command
The method `show_path_changes` takes a list of tuples (source, destination)
that will be printed on either single / double line, as proposed in #1405.
2015-05-20 13:03:18 +02:00
Adrian Sampson
adebb850b5 Tests: fix a leaky error message
Caused by inadvertently executing too much at module-import time. By
materializing ArtResizer in a global definition, we triggered a debug log
before the test harness had a chance to capture the logging.
2015-05-19 16:50:05 -07:00
Adrian Sampson
07242f65e2 Convert always uses bytestring args (#1461) 2015-05-19 16:38:08 -07:00
Adrian Sampson
36c2241a34 Use bytestring filenames in embedart tests
First step on #1461.
2015-05-19 16:09:39 -07:00
Tom Jaspers
a82dee35cb fetchart complains if no imaging backend available
The `enforce_ratio` and `minwidth` options depend on PIL or ImageMagick.
Previously it silently fails. Now it will log a warning, and accept the
image.

Tests concerning these options are skipped when no imaging backend is available.

Fix #1460
2015-05-18 19:44:40 +02:00
Adrian Sampson
d6348a4da2 tests: Use bytes for mock responses
Also, require a newer version of responses that is less sensitive to this.
2015-05-13 18:09:35 -07:00
Adrian Sampson
71d7c0b004 Merge pull request #1450 from tomjaspers/metasync-itunes
MetaSync: more OO structure +  iTunes support
2015-05-13 15:04:36 -07:00
Tom Jaspers
94edc7a2a4 MetaSync: minor improvements for iTunes source
- Use path as an key to find items (over artist/title/album tuples)
- Sensible default library location
2015-05-13 20:02:34 +02:00
Adrian Sampson
dff4feaec2 embedart: Preempt wrong-type error in AAC files 2015-05-11 17:46:21 -07:00
Tom Jaspers
16531b6cf8 MetaSync: fix tests for Windows 2015-05-11 17:42:52 +02:00
Tom Jaspers
afeedd2e70 MetaSync: basic tests
No tests for Amarok, unfortunately
2015-05-10 14:46:59 +02:00
Lucas Duailibe
df89a68a99 Fixing sort by path (fix #1451) 2015-05-07 23:45:26 -03:00
Cody Reichert
b776a71a8c handle mpdstats update_rating when item is None / add appropriate tests 2015-04-28 23:23:27 -05:00
Adrian Sampson
ba87ea1f30 Skip symlink tests on Windows
... where there is no symlinking.
2015-04-23 17:43:15 -07:00
D Andrew Reynhout
e4dcdfe609 Fix autotag test: duplicated assertion 2015-04-23 15:46:53 -04:00
Tom Jaspers
24e6ba3de8 Tests for case insensitive sort
- Changed old values to be capitalized (more natural)
- Introduced specific tests for case sensitivity which adds lower-values
2015-04-18 11:22:01 +02:00
Adrian Sampson
56ca69d63d Fix #1404 by only writing _media_fields
This just makes "date" and "original_date" into ordinary flexible fields,
which is probably the way it should be.
2015-04-16 19:55:48 -07:00
Adrian Sampson
0979148866 Slightly more legible tests 2015-04-16 19:31:27 -07:00
Adrian Sampson
7c1cf6632e Add test for leading comma (#1423) 2015-04-16 19:28:03 -07:00
Tom Jaspers
13eabe25dd "or"-operator tests on dbcore:parse_sorted_query 2015-04-16 10:04:32 +02:00
Adrian Sampson
a0ff517d17 Guess output encoding from sys.stdout.encoding
Rather than using the locale settings. #1419
2015-04-13 11:11:16 -07:00
Bruno Cauet
882844bc77 Echonest conversion command: only use byte strings
Temp file name was unicode, so if other parts of the command were
utf8-encoded non-ascii strings the command would fail (in
beets.util.command_output()). Requesting a temp file with a byte string
path fixes the issue.

Fix #1407.
2015-04-09 18:05:41 +02:00
Frederik “Freso” S. Olesen
0d21e816d4 Fetchart: Remove hard 500px size limit for CAA cover art.
Using -500 URLs for coverartarchive.org will only ever return images
where the biggest dimension is (width or height) is 500 pixels,
regardless of what fetchart settings are otherwise set.

This commit removes the -500 from the URL entirely rather than using it
conditionally, since a maxwidth of 500 will allow for a 600 high and 500
wide image, but CAA.org/...-500 would return a 500x417 image instead, so
not enforcing a size is the only way to ensure the user's {max,min}width
settings are properly respected.
2015-04-07 15:24:01 +02:00
Tom Jaspers
7bdcb08ef5 Merge pull request #1394 from tomjaspers/fetchart-minwidth-ratio
Fetchart: minwidth and enforce_ratio options
2015-04-06 11:20:33 +02:00
Tom Jaspers
2c6f29bfb6 Add tests for minwidth and enforce_ratio 2015-04-06 11:12:16 +02:00
Adrian Sampson
61ffc165df Tests: avoid leaking a mock
The decorator is now necessary because we're patching a module-global.
2015-04-05 12:28:14 -07:00
Adrian Sampson
0af2cdaa3a New beets.art image utilities
This makes it cleaner to share the high-level image-embedding logic between
the `embedart` and `convert` plugins. This resolves a regression, introduced
in f504c786, that inadvertently activated the former plugin when the latter
was enabled. I also like avoiding cross-plugin imports.
2015-04-05 12:15:38 -07:00
Bruno Cauet
76be623031 Fix concurrent logging testing
Set the verbosity in the config from the beginning.

Use self-made barriers (DummyPlugin.step1, DummyPlugin.step2) and
Thread.join() to ensure everything is going as expected.
2015-04-01 17:38:49 +02:00
Bruno Cauet
2c37602d66 Concurrent logging tests: raise thread exc in main thread
In ConcurrentEventsTest.test_concurrent_events listener1 sometimes has a
wrong log level. However the AssertionError is raised in a thread and
not the main one, so the test seems passing while it should fail.
By storing the exception and raising it later we solve that issue,
allowing to fix the random fail.
2015-04-01 17:06:42 +02:00
Bruno Cauet
5e26d483a8 Replace deprecated assertEquals with assertEqual. 2015-04-01 10:48:03 +02:00
Bruno Cauet
c6f6e3164a Merge branch 'thread-safe-logging2' 2015-04-01 10:45:12 +02:00
Bruno Cauet
05de43a942 Share logging level between beets base logger refs
Add BeetsLogger.set_global_level() so the 'beets' logger has the same
level in all threads, which is important for an import session.
2015-03-31 18:03:11 +02:00
Adrian Sampson
882723a0bf Merge pull request #1387 from brunal/improve-path-query
Improve path query: autodetect only if the target exists
2015-03-30 22:36:25 -05:00
Tom Jaspers
c95b89ebc1 Thumbnails: add None check on lib_name
`find_library` could return None, which would not cause an OSError
from `loadLibrary`, making the plugin (falsely) think the library is available

Also fixed  wrong method call to skip test in that case

See #1277
2015-03-30 19:56:22 +02:00
Bruno Cauet
ad34642877 Improve path query parts detection: test existence
Detect path parts of a query with `PathQuery.is_path_query()` which
tests for `os.sep` presence AND query part existence.

Also fix a bug where "my_path/" would not get detected: colon absence would
make search for `os.sep` only happen in "my_path".

Fix #1385.
2015-03-30 13:08:14 +02:00
Adrian Sampson
e953e6bdcb Merge branch 'master' of github.com:sampsyo/beets 2015-03-29 14:28:22 -07:00
Adrian Sampson
c37561c74b Redact by default (#1376) 2015-03-29 14:26:16 -07:00
Bruno Cauet
9705c09035 Merge branch 'thumbnails' 2015-03-29 21:44:42 +02:00
Adrian Sampson
eeca2105f9 Merge pull request #1377 from amishb/custom_ft_title
ftintitle plugin now allows a custom format to be defined (Correct Branch)
2015-03-29 12:05:53 -07:00
Adrian Sampson
1539af2a07 Fix tests for new redaction 2015-03-27 22:27:03 -04:00
Adrian Sampson
b477f4a53f Merge pull request #1376 from tomjaspers/config-redacted-fields
Config: new option -r redacts sensitive fields

Conflicts:
	beets/util/confit.py
2015-03-27 22:11:24 -04:00
Amish Bhadeshia
6365a9b538 Added indice into curly brackets, for py26 compatabiity 2015-03-27 20:54:42 +00:00
Amish Bhadeshia
20debd020e Fixed travis errors 2015-03-27 20:45:28 +00:00
Amish Bhadeshia
232ff05766 Added tests and simplified implementation method 2015-03-27 17:59:35 +00:00
Bruno Cauet
0b50dc91ef Fix flake8 error 2015-03-27 14:57:45 +01:00
Tom Jaspers
ce78be3eb6 Config: add docs & tests for --redacted option 2015-03-26 12:49:54 +01:00
Bruno Cauet
35ff1f821d Test GIO URI results.
Complete PR #1277!
2015-03-25 20:31:34 +01:00
Bruno Cauet
be5f80d51a Update thumbnails tests
Still missing: testing the specific output of GioURI.uri()
2015-03-25 20:14:19 +01:00
Bruno Cauet
265fa962eb Merge branch 'master' into thumbnails 2015-03-25 18:17:12 +01:00
Bruno Cauet
199844671e Add concurrent logging tests
Should work for PR #1366 as well.
2015-03-25 12:57:26 +01:00
Bruno Cauet
dfa18b1119 Make beets loggers level thread local.
This updates the beets logger class. Tests are missing.
2015-03-25 12:55:40 +01:00
Bruno Cauet
998d04d3eb Update logging tests (taken from sampsyo/thread-safe-logging) 2015-03-25 12:55:37 +01:00
Bruno Cauet
8f5bae26fd Smartplaylists: improve tests & code modularization 2015-03-25 10:44:33 +01:00
Bruno Cauet
adec09de96 Fix outdated docstring in test.TestHelper 2015-03-23 19:15:14 +01:00
Adrian Sampson
d09c8c66b3 Merge pull request #1359 from brunal/more_info_in_db_changes
Smartplaylist only updates playlists that may have changed
2015-03-19 09:42:52 -04:00
Bruno Cauet
7f34c101d7 Plugin events: restore backwards compatibility
An event listener that expects too few arguments won't crash, arguments
will be cut off instead. This restores a backwards-compatibility hack
that was removed in commit 327b62b6.
2015-03-19 13:37:53 +01:00
Bruno Cauet
12c2511b1f Smartplaylist tests: don't use a dict literal
fucking py26!
2015-03-19 13:37:29 +01:00
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
8e25a70e40 summarize_items(): sort format by decr. freq
Make the summary deterministic.
2015-03-16 14:41:43 +01:00
Bruno Cauet
1e2d481ac0 Add tests for summarize_items() 2015-03-16 14:29:09 +01:00
Adrian Sampson
cf3388fae7 Merge pull request #1344 from jmwatte/bs1770gainsupport
Bs1770gainsupport-tests
2015-03-15 15:35:39 -07: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
jean-marie winters
efb7370e04 Merge branch 'master' of https://github.com/sampsyo/beets into bs1770gainsupport 2015-03-06 22:02:48 +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
jean-marie winters
5d9bb5059a corrected typo 2015-03-04 07:20:53 +01:00
jean-marie winters
614f8eda88 added tests for bs1770gain 2015-03-03 23:02:02 +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
Bruno Cauet
d267741ff3 Delete 'format' variables that shadow the built-in
Also cleanup the 'the' plugin a bit: delete unused variables.

Relates to #1300.
2015-02-11 16:26:16 +01:00
Tom Jaspers
20ae26dd77 Importer metadata source is set as a field: tests
See #1311
2015-02-11 10:14:56 +01:00
Bruno Cauet
f1e13cf886 Offer verbose and very verbose modes
'verbose' is now an int and not a boolean. '-v' is level 1, '-vv' level
2. In the configuration it can be set with 'verbose: 1' or 'verbose: 2'.

Improve #1244: auditing current log levels of plugins remains.
2015-02-10 17:13:15 +01:00
Bruno Cauet
327b62b610 Improve logging management for plugins: fixes
Delete the remaining usages of BeetsPlugin.listen().

Since BeetsPlugin.listeners are wrapped by a loglevel-setting function,
we cannot easily check their unicity anymore.
BeetsPlugin._raw_listeners set holds the raw listeners.

Legacy plugins that did not handle enough arguments in their listenings
functions may break: dedicated code is now deleted for it would not work
with the decorated listeners.

Tests got fixed. Some modifications were done empirically: if it passes
then it's okay.
2015-02-10 16:55:06 +01:00
Bruno Cauet
4578c4f0e1 Improve logging management for plugins
Listeners get logging level modulations, like import_stages already did.

Add extensive tests:
- explicit plugin commands are logged like core beets (INFO or DEBUG)
- import stages are more silent
- event listeners are like import stages

Delete @BeetsPlugin.listen decorator since listeners need plugin instance
context to set its logging level.

Improve #1244. Next is multiple verbosity levels.
2015-02-10 15:30:15 +01:00
Bruno Cauet
7476d6be46 InvalidQuery*Error extend ParsingError
And InvalidQueryArgumentTypeError does not extend TypeError anymore.
2015-02-09 19:25:23 +01:00
Bruno Cauet
c6455c269f Merge branch 'master' into thumbnails
Conflicts:
	docs/changelog.rst
2015-02-09 16:08:29 +01:00
Bruno Cauet
f443e0bfc5 InvalidQueryArgumentTypeError does not extend InvalidQueryError
Places where InvalidQueryArgumentTypeError may be raised (i.e. all
current ones) may not know the query therefore it cannot be an
InvalidQueryError. The InvalidQueryArgumentTypeError is caught in
beets.library.Library._fetch() and an InvalidQueryError is then raised.

Improve #1290.
2015-02-09 15:44:49 +01:00
Bruno Cauet
54887e7655 Widen usage of InvalidQueryError
Replace previous InvalidQueryError with InvalidQueryArgumentTypeError
which extends the former as TypeError. However they lack context: the
query that caused the error.

Raise an InvalidQueryError when a shell-like expression cannot be parsed
by shlex.

Improve #1290.
2015-02-09 15:28:06 +01:00
Tom Jaspers
bbc6d0906b Merge pull request #1312 from tomjaspers/album-path-queries
Album path queries get constructed properly

Fix #1307
2015-02-08 16:43:55 +01:00
Tom Jaspers
0a81aae142 PathQueryTest: rename assert_matched for items 2015-02-08 16:34:28 +01:00
Adrian Sampson
e7f8a627e9 Style fixes for pep8 1.6 2015-02-07 12:51:54 -08:00
Tom Jaspers
3ec44aab3e Update _types field instead of assigning it
Assigning it would override our pre-defined types
(such as `path` in Album._types)
2015-02-06 10:42:46 +01:00
Tom Jaspers
f4d971d3a8 PathQueryTest now also tests Album queries 2015-02-06 10:36:23 +01:00
Adrian Sampson
82e89b8960 Merge pull request #1292 from mried/import-autosingleton
Allow plugins to change the created import tasks
2015-02-03 09:49:13 -08:00
Tom Jaspers
6ed0b2e0f3 Expose an Item's filesize as a field
- Update test-case for info to make sure the item's path is pointing to an actual file.

See #1291
2015-02-02 21:52:23 +01:00
geigerzaehler
46ba99ce79 Merge pull request #1295 from sampsyo/more-info
Info plugin can filter properties in output
2015-02-01 21:19:24 +00:00
Thomas Scholtes
482008bf1d Info plugin can filter properties in output
Resolves #1287
2015-02-01 21:51:26 +01:00
Malte Ried
e681449785 Added documentation
FileFilterPlugin uses the new return value feature
Some tweaks to get the code more readable
2015-02-01 17:01:06 +01:00
Malte Ried
754a90dc90 Merge branch 'master' into import-autosingleton 2015-02-01 16:12:59 +01:00
Thomas Scholtes
51ab099145 Extend item.write() to embed images without changing item
Fixes #1241 and geigerzaehler/beets-check#14

Before, `embed_item` would add the images to the item and then call
`item.write()` to write the item data, including the image, to the
file. This would trigger `item.store()` in the `after_write` hook of
the check plugin. This would in turn try to persist the temporary
`images` attribute of the item, resulting in an SQL error.
2015-02-01 15:35:24 +01:00
Adrian Sampson
14ce6a557e Merge pull request #1183 from marcaddeo/refactor-ftintitle
Refactor ftintitle

Conflicts:
	beetsplug/ftintitle.py
2015-01-31 12:51:15 -08:00
Bruno Cauet
60a89d3a7b Fix thumbnails test 2015-01-31 21:37:14 +01:00
Adrian Sampson
3f0dbb876d Tests for #1285: normalize Unicode filenames 2015-01-31 11:54:32 -08:00
Adrian Sampson
9de9d2497f Unicode tests for #1285 2015-01-31 11:29:32 -08:00
Adrian Sampson
614fbf20ca Tests for #1285: parameterize tests
Also remove an errant `print` and use `rb''` literals for regexes.
2015-01-31 11:24:27 -08:00
Bruno Cauet
e99adddb11 Importer: byte strings for multi-disc directories
Make regexes from raw byte strings and not unicode.
Update the tests.

Fix #1285
2015-01-31 15:40:49 +01:00
Bruno Cauet
557330e994 Fix open numeric ranges
Also improve InvalidQueryError message and update
NumericQuery._convert() docstring.

Fix #1288.
2015-01-31 14:21:32 +01:00
Malte Ried
a608a5fc36 Plugins are able to return a list of import tasks to create instead of the original import task using the import_task_created event. Needed for #1167 2015-01-31 12:41:01 +01:00
Tom Jaspers
927a53d59b Merge pull request #1281 from tomjaspers/configurable-colors
Colors are now user configurable.

Conflicts:
	beets/ui/__init__.py
	beets/ui/commands.py
2015-01-30 13:48:19 +01:00
Bruno Cauet
d299f40a72 Fix PNG metadata type: string only
instead of int
2015-01-29 16:00:05 +01:00
Tom Jaspers
e7378c77a7 Fix tests to use config['ui']['color'] instead of top-level color 2015-01-29 14:04:37 +01:00
Bruno Cauet
9bdeb01689 Improve thumbnails logging
No info message printed twice per cover art (once for the normal
thumbnail and once for the big one)
2015-01-29 13:11:14 +01:00
Bruno Cauet
a78cc65826 Merge freedesktop plugin into thumbnails
Add test for that new code, update docs, update the changelog.
2015-01-29 13:08:02 +01:00
Bruno Cauet
bea5ad3f97 thumbnails: fix --force option management 2015-01-29 12:19:19 +01:00
Bruno Cauet
c09b01ce74 Add tests for thumbnails plugin 2015-01-29 12:19:19 +01:00
Adrian Sampson
790c41a73d write: Do not try to write non-writable fields
Fix #1268.
2015-01-27 15:03:19 -08:00
Bruno Cauet
dbef31776f Replace ur'' strings by r'' strings
Since we use unicode_literals they are equivalent, but ur'' strings are
a syntax error in python 3.0+
2015-01-27 09:02:44 +01:00
Adrian Sampson
b8dab9cf9f Merge pull request #1247 from brunal/future
Use all __future__ imports in beets core

Conflicts:
	beetsplug/web/__init__.py
	test/test_embedart.py
2015-01-26 17:02:07 -08:00
Bruno Cauet
4e904c78af Simplify LibModel format management
Delete `ui.format_` and then `ui.print_obj`. Simply ensure that when
there is no format it defaults to '' = default format = config option.
2015-01-26 23:09:56 +01:00
Bruno Cauet
060c275fd3 Merge branch 'master' into libmodels-formatting
Conflicts:
	beetsplug/embedart.py
2015-01-26 10:17:15 +01:00
Bruno Cauet
bd29ab21e1 Delete outdated disabled test in test_library.py
TemplateTest.album_fields_override_item_values() never ran because of
its name (missing 'test_' prefix). When run it now fails for it targets
outdated functionality.
2015-01-25 21:38:29 +01:00
Bruno Cauet
73d200184b Implement __format__ on Album and Item
Cut the need to format manually (and often incorrectly) when logging by
implementing the __format__ magic method (see PEP 3101) on LibModel
(the parent class of Album & Item).

Based on a discussion in PR #1262
2015-01-25 19:41:49 +01:00
David Logie
29de697a8d Fix bug where playlists were not created in subdirs.
Playlist names containing path separators would cause beets to crash if
the parent directories for the playlist didn't already exist.
2015-01-24 13:00:25 +00:00
Matthias Kiefer
b16898743d Fixed IndexError on reading embedded cover art with invalid cover type 2015-01-23 13:44:08 +01:00
Bruno Cauet
268dcb0008 test.helper.log_capture() unicode handling
Except unicode message instead of bytes.

Fix #1253
2015-01-21 19:18:57 +01:00
Adrian Sampson
070d4feb62 Remove unused import 2015-01-21 10:10:47 -08:00
Adrian Sampson
6b11c6326e embedart: Fix test for 433d6b7 (#1252) 2015-01-21 09:35:36 -08:00
Bruno Cauet
c2f8cb9983 Merge branch 'master' into future
Conflicts:
	test/test_plugins.py
2015-01-21 10:04:33 +01:00
David Logie
f458549e4e mbsync: Set default album/item format for tests. 2015-01-21 08:05:27 +00:00
David Logie
28f616f75d mbsync: Remove unnecessary decorators. 2015-01-21 08:05:27 +00:00
David Logie
11a21e149e mbsync: Improve tests.
* Move the "skipped item" tests to their own method.
* Add a test for the default format
2015-01-21 08:05:27 +00:00
David Logie
3e9f716b68 Remove unused variable. 2015-01-21 08:05:27 +00:00
David Logie
1380ee79dc Add basic test for custom mbsync formats. 2015-01-21 08:05:27 +00:00
Adrian Sampson
1a151c2272 Remove redundant config rest in tests
teardown_beets resets the configuration already.
2015-01-20 15:22:59 -08:00
Adrian Sampson
07f99e6ab7 Fix up tests for import_task_created (#1186) 2015-01-20 14:51:26 -08:00
Adrian Sampson
8e94419c2a Fix filefilter (#1186) tests for consistent colons
I added this to the pretend output a few commits ago.
2015-01-20 14:34:42 -08:00
Adrian Sampson
0a8dcadb75 Rename regexfilefilter to filefilter (#1186) 2015-01-20 14:32:22 -08:00
Adrian Sampson
ebc065ecec Merge branch 'mried-import-filefilter'
Merge of PR #1186.
2015-01-20 14:22:55 -08:00
Malte Ried
a62a152010 Moved the regular expression file filter into a separate plugin. 2015-01-20 19:50:00 +01:00
Bruno Cauet
53c21330c2 All tests use unicode_literals 2015-01-20 15:58:02 +01:00
Bruno Cauet
152e93136b test._common and test.helper use unicode literals 2015-01-20 15:52:47 +01:00
Bruno Cauet
afb1611cf2 Fix test.helper __future__ imports 2015-01-20 12:51:27 +01:00
Bruno Cauet
02d8e88ef1 Replace all mentions of 'str' with 'bytes' 2015-01-20 12:48:15 +01:00
Bruno Cauet
9c41c39913 Do __name__ comparison with bytes and not unicode 2015-01-20 12:03:57 +01:00
Bruno Cauet
454da9dc7b Fix print usage in test helper script 2015-01-19 22:08:04 +01:00
Bruno Cauet
2dab8e5fd6 Import unicode_literals in beets package 2015-01-19 21:41:33 +01:00
Bruno Cauet
6fff7a954c Import unicode_literals in beets.dbcore 2015-01-19 17:18:50 +01:00
Bruno Cauet
8dd7bf0f0b unicode_literals in beets.ui and beets.autotag
Well, that was easy!
2015-01-19 17:18:50 +01:00
Bruno Cauet
90b388b775 Use __future__ imports but unicode_literals everywhere
Include import of __future__ features division, absolute_imports and
print_function everywhere. Don't add unicode_literals yet for it is
harder to convert.

Goal is smoothing the transition to python 3.
2015-01-19 12:25:16 +01:00
Bruno Cauet
2902cda036 tests: use absolute imports everywhere 2015-01-19 12:25:15 +01:00
Bruno Cauet
b436e75a9e embedart: fix behaviour on IM unparseable output, add tests
Test all EmbedCoverArtPlugin.check_art_similarity() code paths.

Improve #1241.
2015-01-19 11:50:51 +01:00
Adrian Sampson
dc5a79e35c New import_task_created event
Part of #1186.
2015-01-18 15:37:48 -08:00
Malte Ried
0eb185a5e7 Merge branch 'master' into import-filefilter 2015-01-18 18:55:24 +01:00
Adrian Sampson
6fb3b24c31 Merge pull request #1221 from brunal/crash-on-invalid-queries
Stop on invalid queries instead of ignoring them
2015-01-15 10:50:05 -08:00
Bruno Cauet
f4b4847919 Rename exception: InvalidQuery → InvalidQueryError
Follow PEP8.
2015-01-15 11:47:35 +01:00
Bruno Cauet
b49cd3b73b Lyrics plugin: fix google backend
Give config on backends init so the Google backend can get the API key
and Engine Id.
Fix #1226
2015-01-15 11:28:04 +01:00
Bruno Cauet
0d1fa80651 Smartplaylist: don't utf8-encode the name
A Template expression expects an unicode, not an utf8-encoded string.
Add a test for that.
2015-01-14 12:32:00 +01:00
Bruno Cauet
3804eb5b52 Stop on invalid queries instead of ignoring them
So far an invalid query won't be applied:
    $ beet ls The Beatles year:196a
will be treaded as
    $ beet ls The Beatles
With this commit it stops beets, returns 1 and produces
    $ invalid query: u'196a' is not an int or a float
This applies to any querying and therefore on many command, plugins and
some configuration options.
Invalid queries exist on numeric fields and on regular expression usage.

Compile regular expression queries upon instantiation instead of upon
each match test.

The reporting can be improved (give more context). Fix #1219.
2015-01-14 11:28:50 +01:00
Malte Ried
ad65242ebd Merge branch 'master' into import-filefilter
Conflicts:
	beets/importer.py
	beets/plugins.py
	beetsplug/ihate.py
2015-01-14 10:46:03 +01:00
Bruno Cauet
2e57d8660e Ensure there's no duplicate plugin listeners
A same function cannot be registered twice on a given event.
This will permit improvements of some plugins (e.g. smartplaylist)
2015-01-13 11:29:42 +01:00
Bruno Cauet
621ea60af4 Improve importer log unicode-handling test
Send unicode instead of utf8-encoded string and check that the
non-ASCII char is correctly handled.

Bonus: use unittest.TestCase.assertIn(A, B) instead of "assert A in B".
2015-01-12 22:20:58 +01:00
Bruno Cauet
8418fb6083 Use a standard logger for the import log
The import log now relies on a standard logger, named 'beets.importer'
and configured upon initialization of the import session.
2015-01-12 21:47:44 +01:00
Bruno Cauet
b27c5304d1 Merge branch 'master' into logging
Conflicts:
	beetsplug/fetchart.py
	beetsplug/mpdstats.py
2015-01-09 15:15:27 +01:00
Adrian Sampson
1654fc82ce Merge pull request #1211 from brunal/fetchart-check-isfile
Fetchart: check that the art found is a file
2015-01-08 13:40:21 -08:00
Frederik “Freso” S. Olesen
4b1f0cbf48 Happy 2015. ;)
See 7a410f636b

Command used:

    git grep -l 'Copyright 201'|xargs sed -i -E 's/Copyright 201./Copyright 2015/'`
2015-01-08 21:37:09 +01:00
Bruno Cauet
2e1b0d589d Fetchart: check that the art found is a file
Fixes issue #1177
2015-01-08 10:58:08 +01:00
Bruno Cauet
974155f2bc Fix pep8 in test 2015-01-06 22:10:30 +01:00
Bruno Cauet
df82e113e5 Fix embedart tests 2015-01-06 21:42:34 +01:00
Bruno Cauet
30562024d2 Fix Lyrics plugin tests 2015-01-06 21:42:10 +01:00
Bruno Cauet
1f62711221 Fix FetchArt tests 2015-01-06 21:42:10 +01:00
Bruno Cauet
1f0932968e Simple test fixes
importfeeds, lastgenre
2015-01-06 21:42:10 +01:00
Adrian Sampson
f6dc2cd81c Merge pull request #1198 from brunal/logging
Lazy {}-style logging everywhere
2015-01-05 17:34:30 -08:00
Adrian Sampson
59f5fc7f7f Remove nose dependency 2015-01-05 10:16:10 -08:00
Bruno Cauet
30f158a95e Move "from beets import logging" statements
Move the import next to other beets-related imports
2015-01-05 10:05:21 +01:00
Bruno Cauet
06f0e1dee1 Port beets.logging to python 2.6
Multiple hacks :-)
2015-01-05 09:21:11 +01:00
Malte Ried
d71a8227e2 Added documentation and tests 2015-01-04 19:02:22 +01:00
Bruno Cauet
52243269fc Make test/test_logging work on python 2.6 2015-01-04 17:14:34 +01:00
Bruno Cauet
408afa1b58 Add tests for beets.logging 2015-01-04 17:02:28 +01:00