commit: f18c6493e672e9af6ec906f773b8542cee97c34d Author: Horea Christian <chr <AT> chymera <DOT> eu> AuthorDate: Mon Jul 11 18:31:20 2022 +0000 Commit: Horea Christian <horea.christ <AT> gmail <DOT> com> CommitDate: Mon Jul 11 18:31:20 2022 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=f18c6493
dev-vcs/datalad: version bump Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Horea Christian <chr <AT> chymera.eu> dev-vcs/datalad/datalad-0.16.1.ebuild | 72 ++++++++++++++++++ dev-vcs/datalad/files/datalad-0.16.1-input.patch | 94 ++++++++++++++++++++++++ 2 files changed, 166 insertions(+) diff --git a/dev-vcs/datalad/datalad-0.16.1.ebuild b/dev-vcs/datalad/datalad-0.16.1.ebuild new file mode 100644 index 000000000..50e29f19d --- /dev/null +++ b/dev-vcs/datalad/datalad-0.16.1.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="Keep code, data, containers under control with git and git-annex" +HOMEPAGE="https://github.com/datalad/datalad" +SRC_URI="https://github.com/datalad/datalad/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test +downloaders +metadata +publish misc" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/p7zip + dev-python/annexremote[${PYTHON_USEDEP}] + dev-python/appdirs[${PYTHON_USEDEP}] + >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}] + dev-python/distro[${PYTHON_USEDEP}] + dev-python/iso8601[${PYTHON_USEDEP}] + dev-python/humanize[${PYTHON_USEDEP}] + dev-python/fasteners[${PYTHON_USEDEP}] + app-arch/patool[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] + dev-python/wrapt[${PYTHON_USEDEP}] + downloaders? ( + dev-python/boto[${PYTHON_USEDEP}] + dev-python/keyring[${PYTHON_USEDEP}] + dev-python/keyrings_alt[${PYTHON_USEDEP}] + dev-python/msgpack[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ) + metadata? ( + dev-python/simplejson[${PYTHON_USEDEP}] + dev-python/whoosh[${PYTHON_USEDEP}] + ) + misc? ( + dev-python/argcomplete[${PYTHON_USEDEP}] + dev-python/pyperclip[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + ) + publish? ( + dev-vcs/python-gitlab[${PYTHON_USEDEP}] + dev-python/PyGithub[${PYTHON_USEDEP}] + ) +" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + dev-python/httpretty[${PYTHON_USEDEP}] + dev-python/vcrpy[${PYTHON_USEDEP}] + ) +" + +# Noticed by upstream: +# https://github.com/datalad/datalad/issues/6623 +PATCHES=( "${FILESDIR}/${P}-input.patch" ) + +distutils_enable_tests nose + +python_test() { + export DATALAD_TESTS_NONETWORK=1 + ${EPYTHON} -m nose -s -v -A "not(integration or usecase or slow or network or turtle)" datalad || die + # Full test suite takes for ever: + # ${EPYTHON} -m nose -s -v datalad || die +} diff --git a/dev-vcs/datalad/files/datalad-0.16.1-input.patch b/dev-vcs/datalad/files/datalad-0.16.1-input.patch new file mode 100644 index 000000000..beb539b5d --- /dev/null +++ b/dev-vcs/datalad/files/datalad-0.16.1-input.patch @@ -0,0 +1,94 @@ +diff --git a/datalad/local/tests/test_gitcredential.py b/datalad/local/tests/test_gitcredential.py +index 09387a70d..6dc0e0be4 100644 +--- a/datalad/local/tests/test_gitcredential.py ++++ b/datalad/local/tests/test_gitcredential.py +@@ -70,89 +70,6 @@ def test_gitcredential_interface(path): + assert_false(cred['password']) + + +-@with_tempfile +-def test_datalad_credential_helper(path): +- +- ds = Dataset(path).create() +- +- # tell git to use git-credential-datalad +- ds.config.add('credential.helper', 'datalad', where='local') +- ds.config.add('datalad.credentials.githelper.noninteractive', 'true', +- where='global') +- +- from datalad.downloaders.providers import Providers +- +- url1 = "https://datalad-test.org/some" +- url2 = "https://datalad-test.org/other" +- provider_name = "datalad-test.org" +- +- # `Providers` code is old and only considers a dataset root based on PWD +- # for config lookup. contextmanager below can be removed once the +- # provider/credential system is redesigned. +- with chpwd(ds.path): +- +- gitcred = GitCredentialInterface(url=url1, repo=ds) +- +- # There's nothing set up yet, helper should return empty +- gitcred.fill() +- eq_(gitcred['username'], '') +- eq_(gitcred['password'], '') +- +- # store new credentials +- # Note, that `Providers.enter_new()` currently uses user-level config +- # files for storage only. TODO: make that an option! +- # To not mess with existing ones, fail if it already exists: +- +- cfg_file = Path(Providers._get_providers_dirs()['user']) \ +- / f"{provider_name}.cfg" +- assert_false(cfg_file.exists()) +- +- # Make sure we clean up +- from datalad.tests import _TEMP_PATHS_GENERATED +- _TEMP_PATHS_GENERATED.append(str(cfg_file)) +- +- # Give credentials to git and ask it to store them: +- gitcred = GitCredentialInterface(url=url1, username="dl-user", +- password="dl-pwd", repo=ds) +- gitcred.approve() +- +- assert_true(cfg_file.exists()) +- providers = Providers.from_config_files() +- p1 = providers.get_provider(url=url1, only_nondefault=True) +- assert_is_instance(p1.credential, UserPassword) +- eq_(p1.credential.get('user'), 'dl-user') +- eq_(p1.credential.get('password'), 'dl-pwd') +- +- # default regex should be host only, so matching url2, too +- p2 = providers.get_provider(url=url2, only_nondefault=True) +- assert_is_instance(p1.credential, UserPassword) +- eq_(p1.credential.get('user'), 'dl-user') +- eq_(p1.credential.get('password'), 'dl-pwd') +- +- # git, too, should now find it for both URLs +- gitcred = GitCredentialInterface(url=url1, repo=ds) +- gitcred.fill() +- eq_(gitcred['username'], 'dl-user') +- eq_(gitcred['password'], 'dl-pwd') +- +- gitcred = GitCredentialInterface(url=url2, repo=ds) +- gitcred.fill() +- eq_(gitcred['username'], 'dl-user') +- eq_(gitcred['password'], 'dl-pwd') +- +- # Rejection must not currently lead to deleting anything, since we would +- # delete too broadly. +- gitcred.reject() +- assert_true(cfg_file.exists()) +- gitcred = GitCredentialInterface(url=url1, repo=ds) +- gitcred.fill() +- eq_(gitcred['username'], 'dl-user') +- eq_(gitcred['password'], 'dl-pwd') +- dlcred = UserPassword(name=provider_name) +- eq_(dlcred.get('user'), 'dl-user') +- eq_(dlcred.get('password'), 'dl-pwd') +- +- + @with_tempfile + def test_credential_cycle(path): +