diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-02-22 20:29:22 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-02-22 20:29:22 +0000 |
commit | 71fb24e4cc15fe73651423df81c5e6a79fa8c142 (patch) | |
tree | 962fbc79d3fbda0c4123d5119df5e728d4d7b18c /media-sound/beets | |
parent | aae71b4d8e684ca22d28ef0f1da0989e7bf6468d (diff) |
gentoo auto-resync : 22:02:2023 - 20:29:22
Diffstat (limited to 'media-sound/beets')
-rw-r--r-- | media-sound/beets/Manifest | 11 | ||||
-rw-r--r-- | media-sound/beets/beets-1.4.9-r6.ebuild | 135 | ||||
-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.ebuild | 2 | ||||
-rw-r--r-- | media-sound/beets/beets-9999.ebuild | 6 | ||||
-rw-r--r-- | media-sound/beets/files/1.6.0-mediafile-test.patch | 41 | ||||
-rw-r--r-- | media-sound/beets/files/1.6.0-unicode-test.patch | 47 |
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}') |