Commit graph

1822 commits

Author SHA1 Message Date
Adrian Sampson
d8c0a42e6c Avoid TestHelper dependency in MediaFile tests
Part of #1966. This also introduces a nicer, more lightweight way to create and
destroy temporary directories, decoupling that functionality from the
giant morass that is TestHelper.
2016-11-26 18:55:58 -05:00
Adrian Sampson
a88682e7bb Undo from _common import unittest indirection
This was a vestige from when we used to need the unittest2 library for pre-2.7
compatibility. Now that we require Python 2.7, we aren't using that library
and this indirection wasn't doing any good.
2016-11-26 18:46:44 -05:00
Adrian Sampson
24940c0de7 In MediaFile tests, use simpler import path
This will make it easier to copy these tests into their own repository.
2016-11-26 18:27:20 -05:00
Adrian Sampson
788654736d Obviate the need for a beets utility in MF tests
Even more on #1966.
2016-11-26 18:26:18 -05:00
Adrian Sampson
47049e1ff1 Avoid one last beets utility in MediaFile tests
This is a little dirty, what with the hard-coded encoding, but I don't feel
too bad about it because we're only manipulating our test fixtures and
temporary directory that way.

More on #1966.
2016-11-26 18:23:46 -05:00
Adrian Sampson
54cb0b2a15 Separate beets-specific MediaFile tests
Part of the #1966 separation effort.
2016-11-26 18:08:00 -05:00
Adrian Sampson
fc6658c110 Add a missing __future__ import 2016-11-26 17:31:54 -05:00
Adrian Sampson
d54ef99ea5 Fix a forgotten test 2016-11-25 21:33:44 -05:00
nathdwek@laptop
eb1ea6177d acousticbrainz: drop DefaultList, be explicitly careful
* I don't see DefaultList be really helpful in many other cases, so having
  a beets.util.collections module (which could also conflict with the collections
  module from standard library) with only that in it is a little silly.
* It was elegant and concise, but there are implementation issues: it is not
  recommended to subclass builtin types, but the alternatives differ between python
  2 and 3 (subclass sequence or container or collections.abc?), moreover,
  interpreters can differ in the way they map syntaxic sugar to magic functions.
* Also, slicing and negative indexing could do weird things, so the class wouldn't
  be really intuitive and simple at the same time
2016-11-20 22:03:41 +01:00
nathdwek@laptop
51243240f6 acousticbrainz: Test _map_data_to_scheme with real data 2016-11-20 22:03:41 +01:00
nath@home
4586e2df5a acousticbrainz: Add unit tests 2016-11-20 22:03:41 +01:00
Christoph Reiter
31f91129f3 Use mutagen id3 encoding constants 2016-11-19 10:36:31 +01:00
Christoph Reiter
31898111ed mediafile: prefer latin-1 encoding for ID3 APIC descriptions. Fixes #899
iTunes has problems with everything but latin-1
Try to use latin-1 if possible and fall back to utf-16.
2016-11-18 01:09:53 +01:00
Nathan Dwek
2eae2d6d17 Merge pull request #2262 from beetbox/fix-2260
Convert: Don't prompt for confirmation if query result is empty
Fix #2260
2016-11-13 20:37:09 +01:00
nathdwek@laptop
a0a9f5a7a8 Fix typos in tests 2016-11-13 17:49:18 +01:00
nathdwek@laptop
8067d82be8 convert: test for #2260 2016-11-13 17:47:07 +01:00
Adrian Sampson
d6242ec207 Tiny whitespace fix 2016-11-11 20:00:14 -05:00
michaelbub
58fe63764e reduced line length 2016-11-11 22:34:46 +01:00
michaelbub
0a88338f8b obey style guide 2016-11-11 16:23:32 +01:00
michaelbub
28d18b7c64 update test to run with python 3.5.2 2016-11-11 15:53:14 +01:00
michaelbub
0bdc621d99 sanitizing playlist name AFTER values have been filled in and updated test accordingly 2016-11-11 15:21:34 +01:00
michaelbub
5942adba01 fixed/updated test to consider sanitized playlist names 2016-11-11 10:07:25 +01:00
nathdwek@laptop
e782885e50 embedart: Adapt tests for #2254 2016-11-08 18:48:44 +01:00
nathdwek@laptop
a0877dc092 images: Make sure all jpegs work everywhere
Apply #1545 to a public function used everywhere
2016-11-08 18:48:44 +01:00
Dang Mai
04560bd88e Stop passing in fields to be stored for Item.move and Album.move 2016-10-23 15:52:27 -04:00
Dang Mai
f42f558db2 Fix long line for flake8 2016-10-20 21:21:50 -04:00
Dang Mai
406f3ce843 Add tests and make sure they pass 2016-10-20 21:07:12 -04:00
Dang Mai
679918f191 Fix some test failures 2016-10-20 00:28:28 -04:00
Diego Moreda
fc9f061574 discogs: add tests for medium, medium_total
Add three tests for the setting of tracks' medium and medium_total on
the discogs plugin. test_parse_medium_numbers_single_medium is meant
to fail due to #587.
2016-10-17 19:48:06 +02:00
Diego Moreda
f4907ca5d0 discogs: handle nested subtracks, add try block
Modify coalesce_tracks() in order to handle the case where subtracks
are defined inside an index track (as `sub_tracks` attribute),
reorganizing the if logic to avoid duplicated code.

Add a try..catch block enclosing the call to clean_tracklist, as a
measure for avoiding side effects (and reverting to just parsing the
raw_list if there are any problems).
2016-10-10 19:59:42 +02:00
Diego Moreda
fb398c5f2c discogs: add medium_total to tracks (#415) 2016-10-10 17:46:41 +02:00
Diego Moreda
1148acaaf1 discogs: revise position regexp, add tests, tox
Revise the regular expression used for extracting information from a
discogs position, making the subtrack_index only be matched if one of
the other groups is matched as well. Split the definition into several
lines in order to try to document it a bit more clearly.
Add unit tests for position parsing and non standard positions.
Fix the underscore on tox dependency.
2016-10-10 17:42:27 +02:00
Diego Moreda
1c63d0bbab discogs: add more unit tests
Add unit tests covering the discogs standard positions (12.2.9). Clean
up a bit the helper methods (unused parameters, documentation).

https://www.discogs.com/help/submission-guidelines-release-trk.html#Position
2016-10-07 18:44:55 +02:00
Diego Moreda
9c88998a5d discogs: add initial unit test skeleton
Add a first skeleton for providing unit tests for the discogs plugin,
heavily inspired by test_mb, which adds a couple of method for creating
very simple and not comprehensive Bags that mimic discogs_client.Release
and discogs_client.Track.
Add a test for checking the problem of setting media for the Tracks.
2016-10-06 19:31:55 +02:00
Diego M. Rodríguez
9dcd4f7367 Merge pull request #2213 from diego-plan9/template-comma-behaviour
Revise comma handling on templates
2016-10-04 18:17:49 +02:00
Diego Moreda
bc8f422433 Do not attempt matching unset fields on DateQuery
Add a comparison at DateQuery.match in order to avoid comparing if the
field is not in the item.
Revise the existing types_plugin unit tests for explicitely checking the
behaviour when the values are unset.
2016-10-03 19:52:44 +02:00
Diego Moreda
518c6b8801 Add tests for comma outside functions in templates
Add unit tests for the use of the separator special character (comma)
outside a function argument.
2016-10-02 19:17:56 +02:00
Fabrice Laporte
e2703b9a7c always yield item artist and title first
Rather than using an unordered set for storing pairs, append to a list
and build an OrderedDict from it to filter duplicated strings while
keeping order.
2016-09-25 15:46:22 +02:00
Fabrice Laporte
059be3b94c test_lyrics: fix too many blank lines 2016-09-23 22:41:44 +02:00
Fabrice Laporte
8b4f39da42 lyrics: search for song title part preceding colon. fix #2205 2016-09-23 22:23:32 +02:00
Johnny Robeson
49fc2ac5e9 Use run_with_command in write_cmd in test_ui.py 2016-09-18 03:31:00 -04:00
Johnny Robeson
ec4eb8368e Replace capture_stdout in test_config_command
I didn't see a good reason not to use `run_with_command` here
2016-09-18 03:29:04 -04:00
Johnny Robeson
ddaa94003b add yaml output command func to config_command tests 2016-09-18 03:17:44 -04:00
Johnny Robeson
d585019ab3 Remove indirect run_command() in test_info.py
This was breaking the `info` command in the click branch. I assume
that was because `run_command` was aliased to `run_with_output`.

It was also confusing in its own right, so I consider it a win
either way.
2016-09-17 21:59:56 -04:00
Johnny Robeson
da0e15b71e fold capture_stdout into _run_list() in test_ui 2016-09-09 18:55:47 -04:00
Adrian Sampson
eb58575024 Unicode formats in a test 2016-09-07 21:46:07 -04:00
Adrian Sampson
15a5512ea5 Require Unicode format strings
Fallout from #2188. Following @jrobeson's suggestion, I just turned the check
in LibModel.__format__ into an assert. This turned up a few badly-behaved
clients, which are also fixed.
2016-09-07 21:42:59 -04:00
Johnny Robeson
7a2bdf502f s/utf8/utf-8/ in all encoding/decoding contexts
This matches up with the python documentation.
2016-09-06 23:10:24 -04:00
Johnny Robeson
632240c01c s/linux2/linux/ as platform name in test_library
This causes no issues for us now, and is more forward compatible.
2016-09-05 22:57:38 -04:00
Marvin Steadfast
5592499b31 embyupdate: backwards compatible hostname
`host` takes `localhost`, `http://localhost` and `https://`.
2016-08-26 12:28:48 +02:00
Marvin Steadfast
a282d4abc5 embyupdate: Fix authentication header problem
There was a problem with the authentication header in the latest
versions. The header creation function changed to fix that. Username and
passwort authentication should work again.

The `host` config variable takes now a full hostname. For example
`http://localhost` instead of just `localhost`. This makes it easier to
use https hosts.
2016-08-26 10:29:08 +02:00
Johnny Robeson
6bedbd84df removebyte conversion/literals for command args
Paths are obviously untouched.

We definitely don't need these as they are entirely ascii.
2016-08-25 03:37:30 -04:00
Adrian Sampson
7061f7ff47 Use byte path consistently in hidden test (#2168) 2016-08-13 10:11:52 -04:00
Johnny Robeson
c26266cab0 convert byte args to string on PY3 in command_output
The strings are surrogateescaped to make sure we can get the bytes
representation back
2016-08-11 21:58:58 -04:00
Johnny Robeson
bcc77f747b encode args before decode in convert_stub.py for py 3
We encode the args from `sys.argv` with `util.arg_encoding` to
make sure we have paths that cleanly open when running
`convert_stub.py` on Windows
2016-08-10 05:18:39 -04:00
Johnny Robeson
d41949d326 close files we open, but forgot to close
This fixes all the obvious `ResourceWarning`s seen in the tests
2016-08-09 01:15:28 -04:00
Johnny Robeson
5b3cd44608 add coding: utf-8 magic comment to every .py file 2016-08-07 04:09:17 -04:00
Johnny Robeson
304df82361 rename/move ui._arg_encoding to util.arg_encoding
We use this for more than ui concerns, so it should be in util.

It is also no longer marked as a "private" method.
2016-08-04 17:16:11 -04:00
Johnny Robeson
70b58c1905 use normpath() in all cases for assert_equal_path
This fixes issues with comparing string (via syspath) and bytestring paths on Windows.
2016-08-01 18:33:59 -04:00
Johnny Robeson
15a8409535 add python version to beet --version 2016-07-31 02:48:07 -04:00
xarph
9fb763e151 fix bug where $args would be included in the command output if $args was
set in config but -A or --args was left off the beet play command.
2016-07-26 15:41:45 -07:00
Adrian Sampson
327bebbd23 Merge pull request #2141 from beetbox/remove_patch_dot_start
(Mostly) remove patch dot start
2016-07-26 09:44:06 -04:00
Adrian Sampson
8a234ebc55 Use flake8 3.0 style for import errors
It worked in previous versions to put `noqa` on the non-import line that
preceded the imports. As of flake8 3.0.0, we apparently need to ignore the
import-after-non-import error on every `import` line.
2016-07-25 15:11:10 -04:00
Adrian Sampson
5665696b87 Remove unnecessary path fiddling
I don't know why this was here in the first place -- imports from `beetsplug`
should work fine without this mess.
2016-07-25 15:08:36 -04:00
Adrian Sampson
6772b4d1fd Leave captured stdout as Unicode on Python 3 2016-07-25 13:24:51 -04:00
Adrian Sampson
0e2b8a5b60 Use native strings for IO in a test 2016-07-25 13:22:57 -04:00
Adrian Sampson
b73bbf0b3e In completion tests, don't load system scripts
On my machine, the "leak" of other bash_completion scripts here recently
started doing a *lot* of work for other packages. Most damningly, it started
compiling a bunch of stuff with rustc! Now we only load beets' own completion
stuff.
2016-07-25 12:57:44 -04:00
Adrian Sampson
e65e7a6716 Fix minor style in completion test 2016-07-25 12:45:32 -04:00
Jesse Weinstein
417d78eb78 Use longer param name
Per request by jrobeson on IRC
2016-07-25 00:19:49 -07:00
Johnny Robeson
f8049e67b4 add test helper method to convert cmd args on py2/3
This helper method converts args to bytes on python 2, and args to
strings on python 3
2016-07-25 02:59:41 -04:00
Jesse Weinstein
9df4b6dc15 do_test is not actually a test 2016-07-24 22:45:31 -07:00
Johnny Robeson
ba26b7d26f replace calls to _raw_main in test_ui with run_command 2016-07-25 01:04:06 -04:00
Johnny Robeson
9ab9166c8d add a lib keyword arg to the run_command test helper
Now a `Library` instance can be passed to run_command as a keyword
argument.
2016-07-25 00:43:33 -04:00
Johnny Robeson
7bb649c3b2 remove :memory: library fallback from test run_command 2016-07-25 00:16:09 -04:00
Johnny Robeson
2b349c7851 use :memory: Library in all test_config_command tests 2016-07-25 00:14:53 -04:00
Johnny Robeson
3275a511c2 remove a template test that doesn't test anything
@samspyo discovered that this test wasn't testing anything of value, so
we're dropping it.
2016-07-24 23:40:29 -04:00
Jesse Weinstein
92d008b155 Fix overlength lines 2016-07-24 12:11:35 -07:00
Johnny Robeson
20321feda7 read and write pipes as bytes in completion tests
The stdin/stdout for subprocess are bytes, so treat them that way
2016-07-23 04:34:07 -04:00
Johnny Robeson
0377a4e26b open completion files in test_ui in binary mode 2016-07-23 04:24:15 -04:00
Jesse Weinstein
d808316b23 Switch over 3 more files 2016-07-22 23:51:06 -07:00
Jesse Weinstein
e5a723b899 Switch test_importer over to use @patch 2016-07-22 23:35:33 -07:00
Jesse Weinstein
dca27572aa Convert mock.patch.start() into annotation in test_edit 2016-07-22 23:10:35 -07:00
Jesse Weinstein
8474ae3f66 Fix patcher to always be correctly cleaned up 2016-07-21 23:55:07 -07:00
Johnny Robeson
18b57ea022 clear argv before running commands in the test suite
Fixes #2123
2016-07-14 03:33:29 -04:00
Johnny Robeson
7e150481b6 compare test_types plugin test output as strings
Since we're using StringIO (and equivalent in DummyIO), we can just use
strings here.
2016-07-11 02:25:22 -04:00
Johnny Robeson
910a1b93f5 don't test symlink related functions on Windows
They do work, but only with admin privs.  Related discussion in #2114
2016-07-10 20:26:21 -04:00
Johnny Robeson
f9dfd34602 use py3_path for archive (ZipFile, etc) filenames
ZipFile and RarFile both only accept string filenames on py3, not
bytestrings.
2016-07-10 01:53:24 -04:00
Johnny Robeson
bb15829b17 add missing b' to config.yaml files in ui tests
I'd not gotten around to doing this because of other py3 test
issues, but here we go now!
2016-07-07 03:44:19 -04:00
Johnny Robeson
a221a120c4 fix keyfinder command name comparison in test 2016-07-07 03:44:19 -04:00
Wieland Hoffmann
49f59115cb chmod -x image_unknown_type.mp3 2016-07-05 20:29:35 +02:00
Johnny Robeson
fa3fe86ac1 remove bytes() wrap from test helper fixture
It was already bytes, so this was redundant. It also broke the tests
on windows with py3.
2016-07-05 02:06:13 -04:00
Johnny Robeson
53d1dc905f add a missing bytestring_path in importer test 2016-07-05 01:33:43 -04:00
Johnny Robeson
cae6e128e4 use same symlink test in mediafile_edge as elsewhere 2016-07-05 01:29:38 -04:00
Johnny Robeson
00bff81756 add a flush() method to test DummyOut
The method just runs `self.clear()`
2016-07-04 02:24:32 -04:00
Johnny Robeson
b9cd889ef4 decode ipfs item paths to satisy python -bb 2016-07-03 23:52:05 -04:00
Johnny Robeson
8c1e9e0dd4 add missing displayable_paths to satisify python -bb 2016-07-03 23:52:05 -04:00
Johnny Robeson
35d0e81949 add missing bytestring_paths for python -bb 2016-07-03 22:25:47 -04:00
Johnny Robeson
02680eba59 bytestringify a few more paths in test_importer 2016-07-02 01:52:00 -04:00
Johnny Robeson
24ae4bb056 encode path as utf-8 for is_path_query tests
is_path_query is not supposed to accept bytestrings
2016-07-02 01:24:25 -04:00
Adrian Sampson
6919d6980f Fix path types in test_unicode_path
This is lifted directly from 658e814ad718610004cbe6d865c8f2f62e676ffb.
2016-07-01 21:54:37 -07:00