summaryrefslogtreecommitdiff
path: root/media-sound/beets
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-02-22 20:29:22 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-02-22 20:29:22 +0000
commit71fb24e4cc15fe73651423df81c5e6a79fa8c142 (patch)
tree962fbc79d3fbda0c4123d5119df5e728d4d7b18c /media-sound/beets
parentaae71b4d8e684ca22d28ef0f1da0989e7bf6468d (diff)
gentoo auto-resync : 22:02:2023 - 20:29:22
Diffstat (limited to 'media-sound/beets')
-rw-r--r--media-sound/beets/Manifest11
-rw-r--r--media-sound/beets/beets-1.4.9-r6.ebuild135
-rw-r--r--media-sound/beets/beets-1.6.0-r1.ebuild (renamed from media-sound/beets/beets-1.5.0-r2.ebuild)13
-rw-r--r--media-sound/beets/beets-1.6.0.ebuild2
-rw-r--r--media-sound/beets/beets-9999.ebuild6
-rw-r--r--media-sound/beets/files/1.6.0-mediafile-test.patch41
-rw-r--r--media-sound/beets/files/1.6.0-unicode-test.patch47
7 files changed, 106 insertions, 149 deletions
diff --git a/media-sound/beets/Manifest b/media-sound/beets/Manifest
index 84a58b2f6387..e8bcb7e1e57d 100644
--- a/media-sound/beets/Manifest
+++ b/media-sound/beets/Manifest
@@ -4,12 +4,11 @@ AUX 1.4.9-0003-Try-to-work-around-a-Werkzeug-change.patch 698 BLAKE2B f7064a5db5
AUX 1.4.9-0004-Fix-3608-Replace-discogs-client-with-python3-discogs.patch 4650 BLAKE2B 446977fdf23aeaa1afaa85bb16f8dfddc3e7a00af8253a061afbf78d4667979119653ac16af7dc3e24f92606437bdcc4066907ab3ac053e97712c0dd12819b9f SHA512 8f647eb5b87a91ed9c65f9d819980d1f6da740b76b4265288e5e29d614854062bd5769a1ebb1e0a1428fa7aeabe01f1827364c0639db0d2383c4e5dec7bc64fd
AUX 1.5.0-0001-Remove-test_completion.patch 2878 BLAKE2B 1a8bedd5efd9ae823f632124b4f2a273f2ed1576003ca69f689cc4e995724d691fba2018d6f3fe1fc71b0d2c5ca6b3b21380f655f0b997107abda218d34c45f7 SHA512 9b3c8f352493dd72f9206824722c2900c6877223c14726346392a4f2f861b4b3d0499f8539ea6be2d3564a8cb4218cc560d3ce4e47bcf5b1854310a1bd30337d
AUX 1.6.0-0001-Remove-test_completion.patch 2874 BLAKE2B d1a748712d118783c39b1e7d082b1ca5fe6edb26378a26e0f25a70d07129f009ba27a7fee1ec4af5f6515744e0ccce0d4d46779105c3fd5f2e18a00489b8b354 SHA512 c3f471adf8e86bf7ecad99af66213a229b0afa1431f480e3ae48bb87304fc5c39ba313e3fd9fd6b7e3382c792bd8c266f61bf1e56368f9dd28ecbf5bd3547ef2
+AUX 1.6.0-mediafile-test.patch 1613 BLAKE2B 488d8bdf7950d03bc37584c6ff64f3ea63298c4cf532549e82892390d5f2c5a9f966df3beff71591256538e94a33624295fe4a26e718fe78dc4dc826b1604c71 SHA512 50a36b83ff26ef03f7281c4ef9c2f05bbd0184301b7734fee283bc34aa89237f7e86b390744627c5ef0afeb67b57114a16cfa0ef88a0f5e272fa4d4478410202
AUX 1.6.0-sphinx-6.patch 1114 BLAKE2B f37fe23ea86e47ed6eaf5705ae569103d3ae3b5141b9c80c22b30c650a499f915951e5db3e420e36d2829e3508d3e75729391a5de90cfa809271361692c4f485 SHA512 fe2290aec4d6356d4bd2690bd716370e45ae45f98845fb42adda9fab160f306c076f31fd30971f69431b7507917e201d82b494a49d34bf4549024b4df701a83a
-DIST beets-1.4.9.tar.gz 1494459 BLAKE2B 2daf77caf395143813c8b288fc376b5aec01d49281d40ba5942daf9941891146d698a1517ced958e480c6f253eadb6a7e09029e079c97e6cc17d44ac18fa0e7b SHA512 616bad4ca3ecdd05d2f59846fd67215f476ce89cc34d63bc6351efcbaf1e33e5ca783cb8a716e8597b56a7e08e6a6dc15e64b51e89dd786bfb6c5d847f66de5a
-DIST beets-1.5.0.tar.gz 1694845 BLAKE2B e4a4ad880edcc396170bca9e7d04548f22a55eac22481d2babca0d2ca71237ed0509bf9be9af12343b0d1b555e9726446e5d61e637312a4808eece5ce0302f33 SHA512 447b01dc750a69d0a33d271774f3bd3b997a203d80c220c1a961f9a8e30420d263b1e2a4682d25ff7b02e1e85155f42186cb0d3bf27ebc8c2777f68e197d4018
+AUX 1.6.0-unicode-test.patch 1703 BLAKE2B efcdba4db1a7377954b768770d41ce8377d391bb4507bc099aae96469ac0eb250b7458c92013703b6b9d0498a62379a5fb9973b467418b8f6c8af4aed94b0829 SHA512 102d154b30617ab64511ad04ec92e33b58603da04caa7812324cc4a10e0caafeaa1e3c286bfbc712e5c09fc23f250d5a4b10ea5ab5112dea316269d80971e20a
DIST beets-1.6.0.tar.gz 1698333 BLAKE2B 7d3ded703524d5f8740a6adf3769a5752a1e47720ebf0653238f117e4ef6f97461abcd0c7a0d7f428c9848c95277070b5687f9007c04e47b07cdb22eca8c9cbf SHA512 b03759a2be7d3318b4f43cac09ada229cea6496774ba3dcdb1458427e41f6329a627241afc0bfaa9a91afb6818ba944ef6088e38c5635a3bfe730a6a8011a0dc
-EBUILD beets-1.4.9-r6.ebuild 4389 BLAKE2B 1ad6410b7a9d64fc55343bdb57d147422a9aa014e0411955eb0862b3b0be91ceb638d52a590d8e1ba77c86ace3a17494a09e940cc8677b4e587e66ace138d316 SHA512 376146bbfdc2277976485fb202fed48532d7af5ff806648e80c1100c07e25d387efb00c7ecc49f5cd97a7471d59ee4d4a1d3344e56c2afc1aa02f6cc85563873
-EBUILD beets-1.5.0-r2.ebuild 3787 BLAKE2B af31a645e45ffa4b8585083127b82489f772b6027011292c76b9c34552cf727d1c785a843a47a9eb9b00dc8ac8674f64283262733e7b315731e2e83428512149 SHA512 c213f9fd66a7d3765fd1a67b87066b8eb87ff77e51b090d98c535122e03dafaf26bae035d24e8012215c7348b45540520d702b1350369df96e0e29578b10579d
-EBUILD beets-1.6.0.ebuild 3832 BLAKE2B 274895fe1d23a123e4ce348b522050d12cb22947615843eb163935679e82124e0e2df30e0e57e2116bcede6d897d2903588aa7ca4916d077a61f0673b3612244 SHA512 b820a9d690b1c350c89b2d9f739bb04e5440b032e6646da784e13529ff494f78f41a3364266b57c92ca5be91f827f271ade58924aad9963a856a41baad888b8d
-EBUILD beets-9999.ebuild 3729 BLAKE2B 8ccc1210c2254a8f02a4ed61f4f27d560158da8394a4c83a2b3fa5acb021c762c0470b6343a45cd35f47d89bfcef98f94ea09d23e29594c19009777e591a97db SHA512 5766c9eef96240598079c1156581d6497af3394bfa8741529c0f33753c01257cf754ea4a3f04184a5a2d7490bd33b669c43487f7630168eff930b8b6673a11a6
+EBUILD beets-1.6.0-r1.ebuild 3876 BLAKE2B 8d75bf2a3e1cafc2aba3739d683efdf24eecce66536abe2b861674eb34ae4a735165cf62c8d1621b3898dcc1be225ce516680a1e6c6a0116c6896282ae981012 SHA512 e292134c0d90021de4793ba507fe35e28aaa963a7e26125dec17102630f5ab2926b070f8a38ea1ef19ef17a374e86a0a86ec17adca40f0dc9feab26b4d0f9c6d
+EBUILD beets-1.6.0.ebuild 3914 BLAKE2B e73ff3a5f0bd3a86758c02ac1ecd9a3ffa196e4ab9472d47b612a399c1fe148eb113bb0656554835838d19ba09f449a9eb70048daf1217552c33cdfa9511c5a3 SHA512 f944eaa49c8dd1d34a24e8d00f6f8fe9152f87cfb4bf47fc14c05f3a63c886bfa2f7c9a9b2dc521289f6c9e7eac1322ca203f67eafe00bed0ce37f5d67a7c7a9
+EBUILD beets-9999.ebuild 3690 BLAKE2B 4b241c7c63ec9fa555587c653ccce57a6972b3d57be78e4fc117d5b8d5970c7e10859e4a55d15b90e20ebfc0e836f2c9d6b57864814404b5a01a4ef635baeecb SHA512 ed90cd8756925e6786905324b8bab6c3c94f6611d7008689b723541dbea0e961ec0baf485613ed3bddac7197d5012815dfd461576d1d94f21cabae89a0bfb070
MISC metadata.xml 1782 BLAKE2B d06aa5a90768970a9327f134c1314896d888d4c4e78eca01665809a650af67890753698efcc18fc3f57e128a9443f283b4b11b613f0c04be1772e218d789f1d4 SHA512 7d8dc8ca0c7ed4bd8438736ac7f2bc003b07c1c2899e7e0b3d97e89113ff565049cded486c14be9b2026d7446318cfdc0cf4f9a61731c66e61ab7b6c0f9c5dca
diff --git a/media-sound/beets/beets-1.4.9-r6.ebuild b/media-sound/beets/beets-1.4.9-r6.ebuild
deleted file mode 100644
index b394af784457..000000000000
--- a/media-sound/beets/beets-1.4.9-r6.ebuild
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_SINGLE_IMPL=1
-PYTHON_COMPAT=( python3_9 )
-PYTHON_REQ_USE="sqlite"
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit distutils-r1 bash-completion-r1 optfeature
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/beetbox/beets.git"
- inherit git-r3
-else
- MY_PV=${PV/_beta/-beta.}
- MY_P=${PN}-${MY_PV}
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/${MY_P}"
-fi
-
-DESCRIPTION="Media library management system for obsessive-compulsive music geeks"
-HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/"
-
-LICENSE="MIT"
-SLOT="0"
-IUSE="doc test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/jellyfish-0.7.1[${PYTHON_USEDEP}]
- dev-python/munkres[${PYTHON_USEDEP}]
- >=media-libs/mutagen-1.33[${PYTHON_USEDEP}]
- >=dev-python/python-musicbrainzngs-0.4[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/requests-oauthlib[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- >=dev-python/six-1.9[${PYTHON_USEDEP}]
- dev-python/unidecode[${PYTHON_USEDEP}]
- ')"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- doc? (
- dev-python/sphinx
- )
- $(python_gen_cond_dep '
- test? (
- dev-db/sqlite[icu]
- dev-python/beautifulsoup4[${PYTHON_USEDEP}]
- dev-python/bluelet[${PYTHON_USEDEP}]
- dev-python/discogs-client[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pyacoustid[${PYTHON_USEDEP}]
- dev-python/pylast[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/python-mpd[${PYTHON_USEDEP}]
- dev-python/pyxdg[${PYTHON_USEDEP}]
- || (
- dev-python/pillow[${PYTHON_USEDEP}]
- media-gfx/imagemagick
- )
- dev-python/rarfile[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- media-libs/chromaprint[tools]
- media-libs/flac
- media-libs/gst-plugins-bad:1.0
- media-libs/gst-plugins-good:1.0
- media-sound/mp3val
- media-sound/mp3gain
- media-plugins/gst-plugins-libav:1.0
- media-video/ffmpeg:0[encode]
- )
- ')"
-
-PATCHES=(
- "${FILESDIR}/${PV}-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch"
- "${FILESDIR}/${PV}-0002-Disable-test_completion.patch"
- "${FILESDIR}/${PV}-0003-Try-to-work-around-a-Werkzeug-change.patch"
- "${FILESDIR}/${PV}-0004-Fix-3608-Replace-discogs-client-with-python3-discogs.patch"
-)
-
-DOCS=( README.rst docs/changelog.rst )
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
-
- # Tests that need network
- rm test/test_art.py || die "Failed to remove test_art.py"
- rm test/test_discogs.py || die "Failed to remove test_discogs.py"
- rm test/test_embyupdate.py || die "Failed to remove test_embyupdate.py"
- rm test/test_lastgenre.py || die "Failed to remove test_lastgenre.py"
- rm test/test_spotify.py || die "Failed to remove test_spotify.py"
- # Not working and dropped in master
- rm test/test_mediafile.py || die "Failed to remove test_mediafile.py"
-}
-
-python_compile_all() {
- use doc && esetup.py build_sphinx -b html --build-dir=docs/build
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- doman man/*
- use doc && local HTML_DOCS=( docs/build/html/. )
- einstalldocs
-
- ${PYTHON} "${ED}/usr/bin/beet" completion > "${T}/beet.bash" || die
- newbashcomp "${T}/beet.bash" beet
- insinto /usr/share/zsh/site-functions
- newins "${WORKDIR}/${P}/extra/_beet" _beet
-
- optfeature "badfiles support" "media-libs/flac media-sound/mp3val"
- optfeature "chromaprint support" "dev-python/pyacoustid media-libs/chromaprint[tools]"
- optfeature "discogs support" dev-python/discogs-client
- optfeature "ffmpeg support" media-video/ffmpeg[encode]
- optfeature "gstreamer support" "media-libs/gst-plugins-bad media-libs/gst-plugins-good"
- optfeature "icu support" dev-db/sqlite[icu]
- optfeature "lastfm support" dev-python/pylast
- optfeature "mpd support" "dev-python/bluelet dev-python/python-mpd"
- optfeature "replaygain with gstreamer support" "dev-python/pygobject media-plugins/gst-plugins-libav"
- optfeature "replaygain without gstreamer support" media-sound/mp3gain
- optfeature "thumbnail support" dev-python/pyxdg "dev-python/pillow media-gfx/imagemagick"
- optfeature "webserver support" dev-python/flask
- optfeature "webserver cors support" dev-python/flask-cors
-}
diff --git a/media-sound/beets/beets-1.5.0-r2.ebuild b/media-sound/beets/beets-1.6.0-r1.ebuild
index 12588c081be1..b44ef5dfddaf 100644
--- a/media-sound/beets/beets-1.5.0-r2.ebuild
+++ b/media-sound/beets/beets-1.6.0-r1.ebuild
@@ -1,10 +1,10 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DISTUTILS_SINGLE_IMPL=1
-PYTHON_COMPAT=( python3_9 )
+PYTHON_COMPAT=( python3_{9..11} )
PYTHON_REQ_USE="sqlite"
inherit distutils-r1 bash-completion-r1 optfeature
@@ -13,10 +13,10 @@ if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/beetbox/beets.git"
inherit git-r3
else
+ inherit pypi
MY_PV=${PV/_beta/-beta.}
MY_P=${PN}-${MY_PV}
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64"
+ KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${MY_P}"
fi
@@ -37,7 +37,6 @@ RDEPEND="
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/requests-oauthlib[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
- >=dev-python/six-1.9[${PYTHON_USEDEP}]
dev-python/unidecode[${PYTHON_USEDEP}]
dev-python/reflink[${PYTHON_USEDEP}]
dev-python/confuse[${PYTHON_USEDEP}]
@@ -63,6 +62,7 @@ BDEPEND="
dev-python/pygobject:3[${PYTHON_USEDEP}]
dev-python/python-mpd[${PYTHON_USEDEP}]
dev-python/pyxdg[${PYTHON_USEDEP}]
+ dev-python/reflink[${PYTHON_USEDEP}]
|| (
dev-python/pillow[${PYTHON_USEDEP}]
media-gfx/imagemagick
@@ -84,6 +84,9 @@ BDEPEND="
PATCHES=(
"${FILESDIR}/${PV}-0001-Remove-test_completion.patch"
+ "${FILESDIR}/${PV}-sphinx-6.patch"
+ "${FILESDIR}/${PV}-mediafile-test.patch"
+ "${FILESDIR}/${PV}-unicode-test.patch"
)
DOCS=( README.rst docs/changelog.rst )
diff --git a/media-sound/beets/beets-1.6.0.ebuild b/media-sound/beets/beets-1.6.0.ebuild
index 4fc0ecd49e53..d27548ed87e2 100644
--- a/media-sound/beets/beets-1.6.0.ebuild
+++ b/media-sound/beets/beets-1.6.0.ebuild
@@ -85,6 +85,8 @@ BDEPEND="
PATCHES=(
"${FILESDIR}/${PV}-0001-Remove-test_completion.patch"
"${FILESDIR}/${PV}-sphinx-6.patch"
+ "${FILESDIR}/${PV}-mediafile-test.patch"
+ "${FILESDIR}/${PV}-unicode-test.patch"
)
DOCS=( README.rst docs/changelog.rst )
diff --git a/media-sound/beets/beets-9999.ebuild b/media-sound/beets/beets-9999.ebuild
index e254cb752d66..56865ec32e82 100644
--- a/media-sound/beets/beets-9999.ebuild
+++ b/media-sound/beets/beets-9999.ebuild
@@ -1,10 +1,10 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DISTUTILS_SINGLE_IMPL=1
-PYTHON_COMPAT=( python3_{9..10} )
+PYTHON_COMPAT=( python3_{9..11} )
PYTHON_REQ_USE="sqlite"
inherit distutils-r1 bash-completion-r1 optfeature
@@ -13,9 +13,9 @@ if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/beetbox/beets.git"
inherit git-r3
else
+ inherit pypi
MY_PV=${PV/_beta/-beta.}
MY_P=${PN}-${MY_PV}
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/media-sound/beets/files/1.6.0-mediafile-test.patch b/media-sound/beets/files/1.6.0-mediafile-test.patch
new file mode 100644
index 000000000000..0feb8be7c98d
--- /dev/null
+++ b/media-sound/beets/files/1.6.0-mediafile-test.patch
@@ -0,0 +1,41 @@
+used to work due to inconsistent mediafile implementation, but with
+https://github.com/beetbox/mediafile/pull/64 (in mediafile >= 0.11.0)
+list fields are None if non-existent, not the empty list
+
+Upstream-PR: https://github.com/beetbox/beets/pull/4593
+
+diff --git a/test/test_embedart.py b/test/test_embedart.py
+index 6b6d616..bc550a8 100644
+--- a/test/test_embedart.py
++++ b/test/test_embedart.py
+@@ -81,7 +81,7 @@ class EmbedartCliTest(_common.TestCase, TestHelper):
+ self.run_command('embedart', '-f', self.small_artpath)
+ mediafile = MediaFile(syspath(item.path))
+ # make sure that images array is empty (nothing embedded)
+- self.assertEqual(len(mediafile.images), 0)
++ self.assertFalse(mediafile.images)
+
+ def test_embed_art_from_file(self):
+ self._setup_data()
+@@ -202,7 +202,7 @@ class EmbedartCliTest(_common.TestCase, TestHelper):
+ self.io.addinput('y')
+ self.run_command('clearart')
+ mediafile = MediaFile(syspath(item.path))
+- self.assertEqual(len(mediafile.images), 0)
++ self.assertFalse(mediafile.images)
+
+ def test_clear_art_with_no_input(self):
+ self._setup_data()
+diff --git a/test/test_zero.py b/test/test_zero.py
+index c4c1769..b48367b 100644
+--- a/test/test_zero.py
++++ b/test/test_zero.py
+@@ -103,7 +103,7 @@ class ZeroPluginTest(unittest.TestCase, TestHelper):
+ item.write()
+
+ mf = MediaFile(syspath(path))
+- self.assertEqual(0, len(mf.images))
++ self.assertFalse(mf.images)
+
+ def test_auto_false(self):
+ self.config['zero']['fields'] = ['year']
diff --git a/media-sound/beets/files/1.6.0-unicode-test.patch b/media-sound/beets/files/1.6.0-unicode-test.patch
new file mode 100644
index 000000000000..8b69e09557c9
--- /dev/null
+++ b/media-sound/beets/files/1.6.0-unicode-test.patch
@@ -0,0 +1,47 @@
+Unidecode 1.3.5 (a yanked PyPI version) changed the behavior of
+Unidecode for some specific characters:
+
+> Remove trailing space in replacements for vulgar fractions.
+
+As luck would have it, our tests used the 1/2 character specifically to
+test the behavior when these characters decoded to contain slashes. We
+now pin a sufficiently recent version of Unidecode and adapt the tests
+to match the new behavior.
+
+Upstream-Commit: https://github.com/beetbox/beets/commit/5ae1e0f3c8d3a450cb39f7933aa49bb78c2bc0d9
+
+diff --git a/setup.py b/setup.py
+index 264bb2e..69eb987 100755
+--- a/setup.py
++++ b/setup.py
+@@ -85,7 +85,7 @@ setup(
+ },
+
+ install_requires=[
+- 'unidecode',
++ 'unidecode>=1.3.6',
+ 'musicbrainzngs>=0.4',
+ 'pyyaml',
+ 'mediafile>=0.2.0',
+diff --git a/test/test_library.py b/test/test_library.py
+index 667d92c..b1cb579 100644
+--- a/test/test_library.py
++++ b/test/test_library.py
+@@ -441,7 +441,7 @@ class DestinationTest(_common.TestCase):
+ self.lib.directory = b'lib'
+ self.lib.path_formats = [('default', '$title')]
+ self.i.title = 'ab\xa2\xbdd'
+- self.assertEqual(self.i.destination(), np('lib/abC_ 1_2 d'))
++ self.assertEqual(self.i.destination(), np('lib/abC_ 1_2d'))
+
+ def test_destination_with_replacements(self):
+ self.lib.directory = b'base'
+@@ -637,7 +637,7 @@ class DestinationFunctionTest(_common.TestCase, PathFormattingMixin):
+
+ def test_asciify_variable(self):
+ self._setf('%asciify{ab\xa2\xbdd}')
+- self._assert_dest(b'/base/abC_ 1_2 d')
++ self._assert_dest(b'/base/abC_ 1_2d')
+
+ def test_left_variable(self):
+ self._setf('%left{$title, 3}')