beets/test
henry b902352139
New Plugin: Titlecase (#6133)
This plugin aims to address the shortcomings of the %title function, as
brought up in issues #152, #3298 and an initial look to improvement with
#3411. It supplies a new string format command, `%titlecase` which
doesn't interfere with any prior expected behavior of the `%title`
format command.

It also adds the ability to apply titlecase logic to metadata fields
that a user selects, which is useful if you, like me, are looking for
stylistic consistency and the minor stylistic differences between
Musizbrainz, Discogs, Deezer etc, with title case are slightly
infuriating.

This will add an optional dependency of
[titlecase](https://pypi.org/project/titlecase/), which allows the
titlecase core logic to be externally maintained.

If there's not enough draw to have this as a core plugin, I can also
spin this into an independent one, but it seemed like a recurring theme
that the %title string format didn't really behave as expected, and I
wanted my metadata to match too.

- [x] Documentation. (If you've added a new command-line flag, for
example, find the appropriate page under `docs/` to describe it.)
- [x] Changelog. (Add an entry to `docs/changelog.rst` to the bottom of
one of the lists near the top of the document.)
- [x] Tests. - Not 100% coverage, but didn't see a lot of other plugins
with testing for import stages.
2025-11-23 10:34:05 -08:00
..
autotag Added test additions 2025-10-14 19:55:50 +02:00
plugins New Plugin: Titlecase (#6133) 2025-11-23 10:34:05 -08:00
rsrc Add tests for mbpseudo plugin 2025-11-01 13:51:34 +01:00
ui Merge remote-tracking branch 'upstream/master' into HEAD 2025-11-06 20:11:57 -05:00
util Move human formatting functions under beets.util.units 2025-07-06 16:09:50 +01:00
__init__.py Remove unused imports 2021-08-26 20:59:48 +10:00
conftest.py Improve visibility of Distance tests failures 2025-10-10 20:36:33 +01:00
test_art_resize.py Replace string concatenation (' + ') 2025-08-30 23:10:15 +01:00
test_autotag.py Move distance to a separate module 2025-05-31 19:17:43 +01:00
test_datequery.py Replace string concatenation (' + ') 2025-08-30 23:10:15 +01:00
test_dbcore.py style: remove extraneous pass statements 2025-09-19 21:11:51 +01:00
test_files.py Merge remote-tracking branch 'upstream/master' into dereference-symlinks-while-hardlinking 2025-10-28 17:13:51 -04:00
test_hidden.py Fix duplicate database change event send on Library.add (#5561) 2025-05-30 13:41:29 +00:00
test_importer.py importer: provides search_ids into lookup_candidates explicitly 2025-07-16 14:06:33 +01:00
test_library.py Replace percent formatting 2025-08-30 22:35:00 +01:00
test_logging.py Removed typealias, worked locally with mypy but does seem to cause 2025-09-30 13:39:49 +02:00
test_m3ufile.py Reformat the codebase 2024-09-21 11:57:48 +01:00
test_metasync.py Reformat the codebase 2024-09-21 11:57:48 +01:00
test_pipeline.py pipeline: remove old tests, integrate with out test suite 2025-05-06 14:51:20 +02:00
test_plugins.py Fixed issue with legacy plugin copy not copying properties. Also 2025-10-14 19:55:50 +02:00
test_query.py Refactor test_query 2025-07-06 16:15:30 +01:00
test_release.py Update release conversion logic accordingly 2025-08-10 16:25:05 +01:00
test_sort.py pyupgrade Python 3.10 2025-11-08 12:09:52 +00:00
test_template.py Fix formatting 2025-05-07 10:41:01 +01:00
test_types.py Add NullPathType and types to PathType 2025-07-06 16:09:49 +01:00
test_util.py Simplify and speed up plurality/album tags retrieval tests 2025-05-31 19:17:42 +01:00
testall.py Remove def suite TestLoader definitions 2024-07-28 18:58:51 +01:00