Commit graph

2180 commits

Author SHA1 Message Date
Adam Jakab
d5a52cbd26 removed unused imports 2020-03-14 21:51:46 +01:00
Adam Jakab
fbd1266bc5 simplified condition in test and added changelog entry 2020-03-14 21:30:22 +01:00
Adam Jakab
832c7326af corrected test to account for year and disctotal field now being treated as types.INTEGER 2020-03-02 13:03:18 +01:00
Adam Jakab
5fc4d7c35e - added field_two as type STRING in ModelFixture1
- renamed test test_format_fixed_field to test_format_fixed_field_string
- test_format_fixed_field_string not tests `field_two` with string values
- added new test_format_fixed_field_integer to test field `field_one` as INTEGER
- added new test_format_fixed_field_integer_normalized to test rounding float values
2020-03-02 13:00:15 +01:00
ybnd
63ea17365a Modify patched stdout in test_malformed_output 2020-02-05 09:04:24 +01:00
ybnd
c3817a4c06 Implement review comments
* safer version comparison

* regex bytes directly

* handle b'\x08 ...' case

* test_replaygain.py: injected command output should match the type of the actual output
2020-01-30 19:21:53 +01:00
ybnd
c1cb78c908 Small fixes in replaygain.Bs1770gainBackend and test_replaygain.py
* Fix unspecified `gain_adjustment` when method defined in config

* Fix difference between dB and LUFS values in case of mismatched `target_level`/`method`:

  ```
  db_to_lufs( target_level <dB> ) - lufs_to_dB( -23 <LUFS> )
  ```

* Ignore single assertion in case of bs1770gain

(cherry picked from commit 2395bf224032c44f1ea5d28e0c63af96a92b96df)
2020-01-30 17:59:57 +01:00
ybnd
c78afb1a97 Don't call bs1770gain outside of try statement 2020-01-30 17:02:28 +01:00
ybnd
53820c0a98 Handle bs1770gain v0.6.0 XML output
* Remove `0%\x08\x08` from output (backspace code doesn't resolve; progress percentages get spliced in)

* Handle changed attributes/fields:
  * `sample-peak` attribute `factor` is called `amplitude` instead
  * Album summary is not included in a `summary` tag now, but in two separate `integrated` and `sample-peak` tags

* Handle `lu` attribute

* Get bs1770gain version
  * If v0.6.0 or later, add `--unit=ebu` flag to convert `db` attributes to LUFS
  * May be useful later on

### Output examples

Track:
```
<!-- analyzing ... -->
<bs1770gain norm="-18.00">
  <track total="1" number="1" file="02 tïtle 0.mp3">
    <integrated lufs="-70.00" lu="52.00"/>
    <sample-peak spfs="-72.28" amplitude="0.00"/>
  </track>
  <integrated lufs="-70.00" lu="52.00"/>
  <sample-peak spfs="-72.28" amplitude="0.00"/>
</bs1770gain>
<!-- done. -->
```

Album:
```
<!-- analyzing ... -->
<bs1770gain norm="-18.00">
  <track total="2" number="1" file="02 tïtle 0.mp3">
    <integrated dbfs="-70.00" db="52.00"/>
    <sample-peak dbfs="-72.28" amplitude="0.00"/>
  </track>
  <track total="2" number="2" file="02 tïtle 1.mp3">
    <integrated dbfs="-70.00" db="52.00"/>
    <sample-peak dbfs="-72.28" amplitude="0.00"/>
  </track>
  <integrated dbfs="-70.00" db="52.00"/>
  <sample-peak dbfs="-72.28" amplitude="0.00"/>
</bs1770gain>
<!-- done. -->
```
2020-01-30 16:13:29 +01:00
Régis Behmo
b489f94b0d Replace the clinical "obsessive-compulsive" term
This is a follow-up on that conversation on gitter:
https://gitter.im/beetbox/beets?at=5d75ac34b3e2fc579379fe25
2019-11-02 23:26:14 +01:00
Adrian Sampson
a7671e16a6 Merge pull request #3409 from jackwilsdon/hook-check-call
hook: switch to using check_call
2019-10-17 11:12:06 -04:00
Jack Wilsdon
cf7a04ea36
Add tests for hook errors 2019-10-17 11:08:18 +01:00
Austin Marino
c1b646ff27
Merge branch 'master' into Extended_Export_Plugin_Support 2019-10-15 15:35:42 -07:00
Austin Marino
623f553c92 Updated Test structure 2019-10-15 11:51:45 -07:00
Austin Marino
21d809180e Updated Test structure 2019-10-15 11:45:38 -07:00
Austin Marino
07138f86dc Fixed styling and test to pass cli 2019-10-14 18:41:06 -07:00
Austin Marino
a9440ada2b Updated test structure for export 2019-10-14 18:17:12 -07:00
Austin Marino
0d818eced5 Ran test to ensure it works 2019-10-14 17:02:39 -07:00
Austin Marino
db5d21620b Updated tests 2019-10-14 13:57:32 -07:00
Austin Marino
fa2c9ba259 Aligned export related code with flake8 standards 2019-10-13 11:36:33 -07:00
Austin Marino
8ff875bded Addec Unit test for export plugin 2019-10-10 19:34:57 -07:00
Rahul Ahuja
f14137fcc2 Add BPSyncPlugin 2019-10-03 18:04:12 -07:00
temrix
486cfa1df1
Add tests for empty responses. 2019-09-21 16:54:47 +02:00
temrix
2691781d4e
Remove forgotten print statement. 2019-09-21 16:41:57 +02:00
temrix
dde905f9a8
Correct typo in docstring. 2019-09-21 16:41:16 +02:00
temrix
6c8535088a
Add test file. 2019-09-19 00:32:52 +02:00
Zsin Skri
e3645dfd59
Merge branch 'master' into r128-targetlevel-config 2019-07-25 23:22:32 +02:00
Adrian Sampson
84032e56e2 Merge pull request #3334 from MartyLake/martylake_add_forward_slash_option
Add option to force forward slashes in paths
2019-07-24 22:11:59 -04:00
MartyLake
fb96660171 Review: simpler implementation and test
Because **all** the path are bytestrings
2019-07-24 18:09:54 +02:00
Paul Malcolm
5f9a394ca9 Issue #2860 Fetch more acousticbrainz fields 2019-07-23 20:25:26 -04:00
MartyLake
076a82daa6 Review: Rename method 2019-07-24 00:09:52 +02:00
MartyLake
68ccfe0e6c Review: Add missing blank line 2019-07-23 23:54:54 +02:00
MartyLake
d1ba309f36 Add a new method that copied pathlib.path.as_posix 2019-07-23 17:17:40 +02:00
Zsin Skri
88ab5474c5 replaygain: add R128_* tag test
Assert that the replaygain plugin does not write REPLAYGAIN_* tags but R128_*
tags, when instructed to do so.

This test is skipped for the `command` backend as it does not support OPUS.
2019-07-22 13:42:26 +02:00
Zsin Skri
5a8bdb67f7 replaygain: add target_level test
Assert that analysing the same track with different target levels yields
different gain adjustments.
2019-07-22 13:42:26 +02:00
Zsin Skri
b9063a0240 fix bs1770gain test
This test caused other tests to fail due to missing cleanup.
2019-07-22 12:49:50 +02:00
Adrian Sampson
bd6a5cfd8e
Merge pull request #3056 from zsinskri/replaygain-backend-ffmpeg
Replaygain backend ffmpeg
2019-07-20 21:40:43 -04:00
Adrian Sampson
8b4d03095f parentwork tests: Remove unnecessary mocking
This mocking doesn't do anything because `command_output` is never
invoked by the code under test. See also #3332.
2019-07-20 16:23:03 -04:00
Zsin Skri
c3af5b3763 replaygain: add ffmpeg backend
Add replaygain backend using ffmpeg's ebur128 filter.

The album gain is calculated as the mean of all BS.1770 gating block powers.
Besides differences in gating block offset, this should be equivalent to a
BS.1770 analysis of a proper concatenation of all tracks.

Just calculating the mean of all track gains (as implemented by the bs1770gain
backend) yields incorrect results as that would:
- completely ignore track lengths
  - just using length in seconds won't work either (e.g. BS.1770 ignores
    passages below a threshold)
- take the mean of track loudness, not power

When using the ffmpeg replaygain backend to create R128_*_GAIN tags, the
targetlevel will be set to -23 LUFS. GitHub PullRequest #3065 will make this
configurable.
It will also skip peak calculation, as there is no R128_*_PEAK tag.

It is checked if the libavfilter library supports replaygain calculation. Before
version 6.67.100 that did require the `--enable-libebur128` compile-time-option,
after that the ebur128 library is included in libavfilter itself. Thus we
require either a recent enough libavfilter version or the `--enable-libebur128`
option.
2019-07-19 21:54:47 +02:00
Zsin Skri
088af4d171 bpd tests: skip control_port in queue
When setting up bpd tests, two servers are startet: first a control server, then
bpd. Both send their assigned ports down a queue. The recipient only needs bpd's
port and thus skips the first queue entry.
2019-07-17 19:05:51 +02:00
Zsin Skri
8ba79117d9 bpd tests: use mp.Queue to communicate assigned port
Use a `multiprocessing.Queue` instead of a `multiprocessing.Value` to avoid the
manual polling/timeout handling.

TODO: Strangely Listener seems to be constructed twice. Only the second one is
used. Fix that and then remove the code working around it.
2019-07-17 16:19:17 +02:00
Zsin Skri
871f79c8f2 bpd tests: close only existing sockets
Close sockets in `finally`-clauses only after they have actually been created.
2019-07-17 13:38:57 +02:00
Zsin Skri
fb07a5112a bpd tests: terminate server upon connection failure 2019-07-17 13:21:25 +02:00
Zsin Skri
bbda292145 bpd test: make start_server a freestanding function
Under some circumstances (maybe under MS Windows?) local objects can't be
pickled. When `start_server` is a local this causes a crash:
https://ci.appveyor.com/project/beetbox/beets/builds/25996163/job/rbp3frnkwsvbuwx6#L541

Make `start_server` a freestanding function to mitigate this.
2019-07-15 22:25:48 +02:00
Zsin Skri
0ebab5edaa fix "Sporadic test failures in BPD tests #3309"
The bpd test bind a socket in order to test the protocol implementation. When
running concurrently this often resulted in an attempt to bind an already
occupied port.

By using the port number `0` we instead let the OS choose a free port. We then
have to extract it from the socket (which is handled by `bluelet`) via
`mock.patch`ing.
2019-07-15 21:25:39 +02:00
Zsin Skri
30395911e2 util.command_output: return stderr, too
Return a namedtuple CommandOutput(stdout, stderr) instead of just stdout from
util.command_ouput, allowing separate access to stdout and stderr.

This change is required by the ffmpeg replaygain backend (GitHub
PullRequest #3056) as ffmpeg's ebur128 filter outputs only to stderr.
2019-07-14 18:32:59 +02:00
Adrian Sampson
e39341b282 Merge pull request #3322 from thedevilisinthedetails/master
465 discogs: Fetch a few more metadata fields
2019-07-01 17:22:50 -04:00
Peter
0cd46dab77 fixing per review comments 2019-07-01 21:04:35 +02:00
Peter
8bf9d75f66 fixing test 2019-06-30 12:50:36 +02:00
Peter
0e2e2dfec3 adding additional discogs attrributes 2019-06-30 12:22:22 +02:00