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
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
Bruno Cauet
4151e81969
Implement __eq__ for all Query subclasses
...
Tests are a bit light.
2015-03-16 17:01:14 +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
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
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
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
Bruno Cauet
7476d6be46
InvalidQuery*Error extend ParsingError
...
And InvalidQueryArgumentTypeError does not extend TypeError anymore.
2015-02-09 19:25:23 +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
0a81aae142
PathQueryTest: rename assert_matched for items
2015-02-08 16:34:28 +01:00
Tom Jaspers
f4d971d3a8
PathQueryTest now also tests Album queries
2015-02-06 10:36:23 +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
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
6fff7a954c
Import unicode_literals in beets.dbcore
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
f4b4847919
Rename exception: InvalidQuery → InvalidQueryError
...
Follow PEP8.
2015-01-15 11:47:35 +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
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
Thomas Scholtes
ec65408c3e
Escape path queries for SQLite
...
Fixes #1146
2014-12-21 12:26:04 +01:00
Thomas Scholtes
ad71af2c3d
Add NoneQuery
...
This makes fast SQL queries for singletons possible
2014-09-17 11:23:00 +02:00
Thomas Scholtes
a92493cf12
Test queries on boolean fields
2014-09-15 00:48:18 +02:00
Thomas Scholtes
e5da5757c0
Preserve state in query tests
2014-09-15 00:36:24 +02:00
Thomas Scholtes
b86669fe05
Add integer query tests
2014-09-14 16:11:13 +02:00
Adrian Sampson
70b5a44ef4
Move query parsing to new dbcore.queryparse
...
Fix #649 .
2014-05-24 17:07:18 -07:00
Thomas Scholtes
f6f974ec87
Remove ITEM_* constants
...
We might consider renaming `Item._fields` to `Item.fields` since other parts of
beets use it as a replacement for `ITEM_KEYS`.
See also #650 .
2014-04-10 17:11:21 +02:00
Adrian Sampson
c196f20dfc
fix numeric queries over empty string ( fix #547 )
2014-02-17 22:51:53 -05:00
Adrian Sampson
83f981762c
fix #508 : crash when parsing empty query part
...
This is a regression created by my endeavor to have parse_query_part never
return None. Now the regular expression should really always match.
2014-01-26 10:51:58 -08:00
Adrian Sampson
74d0dc8352
further paramaterize parse_query_part
2014-01-21 19:09:34 -08:00
Adrian Sampson
4026c4b707
add query field to types
...
This is starting to get at the heart of the matter: now each type gets to
declare which Query subclass it wants to use, starting with NumericQuery.
2014-01-20 17:47:02 -08:00
Adrian Sampson
9ee4adc5e1
move remaining generic Query types to dbcore.query
...
NumericQuery is still broken. This, of course, is the whole reason for the
change.
2014-01-20 16:40:50 -08:00
Adrian Sampson
98bfbad089
test_query: use base test classes
2013-09-23 15:09:39 -07:00
Adrian Sampson
5007d1571f
merge disk and memory query tests
2013-09-23 15:05:47 -07:00
Adrian Sampson
4d0db3fcb4
tests: obviate on-disk test library
2013-09-23 10:57:17 -07:00
Adrian Sampson
bbac4ba109
numeric query tests
2013-09-16 17:19:40 -07:00
Adrian Sampson
c7fe017752
remove Library.{move,store} methods
...
These methods are now provided by LibModel, which makes dealing with items and
albums symmetric.
2013-08-21 15:34:45 -07:00
Adrian Sampson
0176b9742f
tests: unknown fields silently match nothing
...
Previously, an unknown field would be ignored. Now, they're treated as
flexattrs that just haven't been set yet (and thus always hold None).
2013-08-21 09:46:30 -07:00
Adrian Sampson
9e61e49457
fix NumericQuery constructor
2013-08-21 09:42:16 -07:00
Adrian Sampson
ec10f8c223
remove count() calls
...
I removed this method in an earlier commit.
2013-08-20 14:28:28 -07:00
Adrian Sampson
c1b66105dd
fix regex (and other) queries in path field
2013-08-04 13:12:25 -07:00
Adrian Sampson
8781433f59
add tests for matching floating-point ranges
2013-05-09 15:49:38 -07:00
Adrian Sampson
ea0928c845
generalize YearQuery to NumericQuery
2013-05-09 15:47:25 -07:00
Michael Schuerig
c102b3be90
Add error message and test for invalid years.
2013-04-25 00:45:05 +02:00
Michael Schuerig
fe41bba380
Add a query class for years with support for ranges.
2013-04-25 00:36:21 +02:00
Adrian Sampson
fe8092139b
fix construction of conditional path queries
...
I broke this in the last flurry of refactors but, as is usually the case, I
have no idea why it ever worked before.
2013-03-14 11:05:35 -07:00