dev-vcs/dandi-cli: new version
Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Horea Christian <chr@chymera.eu>
This commit is contained in:
parent
b6e6f7c3c1
commit
a5f3c42073
@ -1,11 +1,6 @@
|
||||
11 Oct 2021; <chymera@gentoo.org> dandi-cli-0.28.0.ebuild:
|
||||
dev-vcs/dandi-cli: added dep and ammended test suite
|
||||
*dandi-cli-0.30.3 (14 Oct 2021)
|
||||
|
||||
*dandi-cli-0.28.0 (06 Oct 2021)
|
||||
|
||||
06 Oct 2021; <chymera@gentoo.org> +dandi-cli-0.28.0.ebuild,
|
||||
+files/dandi-cli-0.27.2-no-etelemetry.patch,
|
||||
+files/dandi-cli-0.27.2-pip-versioncheck.patch,
|
||||
+files/dandi-cli-0.28.0-pip-versioncheck.patch, -ChangeLog,
|
||||
dandi-cli-0.27.2.ebuild, metadata.xml:
|
||||
dev-vcs/dandi-cli: added etelemetry support
|
||||
14 Oct 2021; <chymera@gentoo.org> +dandi-cli-0.30.3.ebuild,
|
||||
+files/dandi-cli-0.28.0-test_nonetwork.patch, -ChangeLog,
|
||||
dandi-cli-0.28.0.ebuild:
|
||||
dev-vcs/dandi-cli: new version
|
||||
|
@ -1,2 +1,3 @@
|
||||
DIST dandi-cli-0.27.2.tar.gz 172781 SHA256 179bbe77be65272932f6e1fc133b043eb94449847155fde3c45455c30b6cbdcc SHA512 00c522a1f5c922e6a38e257defbb02a03480156d61bcf80de3326131533a5cc332771ea05e2a995d7ace71b0ba551151d4ec3d3f4456197cb358133d3aa3fe89 WHIRLPOOL bf059cad4f8a9988a783d0001a68ebec8d480f3188f756af720aa5f0e32002e8301a3f98b2e0c492bb3be07f39959839e8b67c5544c0a3e18e757332a6bdb70c
|
||||
DIST dandi-cli-0.28.0.tar.gz 173403 SHA256 27b67c93a8625dd15db2e3513ae3448569ccade2dc82eb1f110de5b1c02b5ec3 SHA512 399ee378798a3c7fdc92314dca25e91178bb157145205e43a1d2ec461f36c674ed1b63b97f805ab9d25eb30d18d82827e38024b8a72c691c3992af60fc286be3 WHIRLPOOL 3381c9f7f0c7c5263bb2a8019205a44d0b6084fc9719034462ea7d66f0f23a617dfc3468676102f931444b4b43b788e8c7c65615ebae5f30c635d51badbaf92a
|
||||
DIST dandi-cli-0.30.3.tar.gz 175911 SHA256 ed218df35ee69f6d06fd6c70fe69226aaf6d3231f8b58abdd1b9fd1477350c44 SHA512 11e73a5acaa05bb2d0287e25e1e25226474f5b076ac58e9bedcb1608e6a509d113960a1d6dfe1b665d99d14d6b4b51f65eb85c38a4f9eba0ddb5492f1890cf96 WHIRLPOOL f12b8c0eada3b6ddf373301e8cfd1b1c1c4339d4ee59fe37b730eb7c91a4c031660da422316c007ce5445d2ab90c83242921cc417dad43c66bad814031811946
|
||||
|
@ -56,6 +56,7 @@ distutils_enable_tests pytest
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-pip-versioncheck.patch"
|
||||
"${FILESDIR}/${P}-test_nonetwork.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
@ -67,5 +68,5 @@ src_prepare() {
|
||||
|
||||
python_test() {
|
||||
export DANDI_TESTS_NONETWORK=1
|
||||
DANDI_TESTS_NONETWORK=1 ${EPYTHON} -m pytest -vv || die "Tests failed with ${EPYTHON}"
|
||||
${EPYTHON} -m pytest -vv || die "Tests failed with ${EPYTHON}"
|
||||
}
|
||||
|
71
dev-vcs/dandi-cli/dandi-cli-0.30.3.ebuild
Normal file
71
dev-vcs/dandi-cli/dandi-cli-0.30.3.ebuild
Normal file
@ -0,0 +1,71 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{8..10} )
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="DANDI command line client to facilitate common operations"
|
||||
HOMEPAGE="https://github.com/dandi/dandi-cli"
|
||||
SRC_URI="https://github.com/dandi/dandi-cli/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test +etelemetry"
|
||||
#RESTRICT="test"
|
||||
# Test fail during collection, reported upstream: https://github.com/dandi/dandi-cli/issues/774
|
||||
|
||||
RDEPEND="
|
||||
dev-python/appdirs[${PYTHON_USEDEP}]
|
||||
dev-python/click[${PYTHON_USEDEP}]
|
||||
dev-python/click-didyoumean[${PYTHON_USEDEP}]
|
||||
=dev-python/dandischema-0.4*[${PYTHON_USEDEP}]
|
||||
dev-python/fasteners[${PYTHON_USEDEP}]
|
||||
dev-python/fscacher[${PYTHON_USEDEP}]
|
||||
dev-python/humanize[${PYTHON_USEDEP}]
|
||||
dev-python/joblib[${PYTHON_USEDEP}]
|
||||
dev-python/keyring[${PYTHON_USEDEP}]
|
||||
dev-python/keyrings_alt[${PYTHON_USEDEP}]
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/pycryptodomex[${PYTHON_USEDEP}]
|
||||
dev-python/pydantic[${PYTHON_USEDEP}]
|
||||
dev-python/pynwb[${PYTHON_USEDEP}]
|
||||
dev-python/pyout[${PYTHON_USEDEP}]
|
||||
dev-python/python-dateutil[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/ruamel-yaml[${PYTHON_USEDEP}]
|
||||
dev-python/semantic_version[${PYTHON_USEDEP}]
|
||||
dev-python/tenacity[${PYTHON_USEDEP}]
|
||||
dev-python/tqdm[${PYTHON_USEDEP}]
|
||||
dev-python/wheel[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
dev-python/anys[${PYTHON_USEDEP}]
|
||||
dev-python/responses[${PYTHON_USEDEP}]
|
||||
dev-python/pyfakefs[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-0.28.0-pip-versioncheck.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if ! use etelemetry; then
|
||||
eapply "${FILESDIR}/${PN}-0.27.2-no-etelemetry.patch"
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
python_test() {
|
||||
export DANDI_TESTS_NONETWORK=1
|
||||
${EPYTHON} -m pytest -vv || die "Tests failed with ${EPYTHON}"
|
||||
}
|
228
dev-vcs/dandi-cli/files/dandi-cli-0.28.0-test_nonetwork.patch
Normal file
228
dev-vcs/dandi-cli/files/dandi-cli-0.28.0-test_nonetwork.patch
Normal file
@ -0,0 +1,228 @@
|
||||
From 2d273cd96c4512c768cfe398dd2e3b0973afa243 Mon Sep 17 00:00:00 2001
|
||||
From: "John T. Wodder II" <git@varonathe.org>
|
||||
Date: Mon, 11 Oct 2021 09:23:57 -0400
|
||||
Subject: [PATCH] Apply "skipif_no_network" to all relevant tests
|
||||
|
||||
---
|
||||
dandi/cli/tests/test_ls.py | 5 +++++
|
||||
dandi/tests/fixtures.py | 5 ++---
|
||||
dandi/tests/skip.py | 5 +++++
|
||||
dandi/tests/test_dandiapi.py | 4 ++++
|
||||
dandi/tests/test_dandiarchive.py | 3 ++-
|
||||
dandi/tests/test_download.py | 5 +++++
|
||||
dandi/tests/test_utils.py | 5 ++---
|
||||
tox.ini | 1 +
|
||||
8 files changed, 26 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dandi/cli/tests/test_ls.py b/dandi/cli/tests/test_ls.py
|
||||
index b6d6ddf2..35f963ea 100644
|
||||
--- a/dandi/cli/tests/test_ls.py
|
||||
+++ b/dandi/cli/tests/test_ls.py
|
||||
@@ -5,6 +5,8 @@
|
||||
from dandischema.consts import DANDI_SCHEMA_VERSION
|
||||
import pytest
|
||||
|
||||
+from dandi.tests.skip import mark
|
||||
+
|
||||
from ..command import ls
|
||||
from ...utils import yaml_load
|
||||
|
||||
@@ -46,6 +48,7 @@ def load(s):
|
||||
assert metadata[f] == simple1_nwb_metadata[f]
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
def test_ls_dandiset_url():
|
||||
r = CliRunner().invoke(
|
||||
ls, ["-f", "yaml", "https://api.dandiarchive.org/api/dandisets/000027"]
|
||||
@@ -56,6 +59,7 @@ def test_ls_dandiset_url():
|
||||
assert data[0]["path"] == "000027"
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
def test_ls_dandiset_url_recursive():
|
||||
r = CliRunner().invoke(
|
||||
ls, ["-f", "yaml", "-r", "https://api.dandiarchive.org/api/dandisets/000027"]
|
||||
@@ -67,6 +71,7 @@ def test_ls_dandiset_url_recursive():
|
||||
assert data[1]["path"] == "sub-RAT123/sub-RAT123.nwb"
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
def test_ls_path_url():
|
||||
r = CliRunner().invoke(
|
||||
ls,
|
||||
diff --git a/dandi/tests/fixtures.py b/dandi/tests/fixtures.py
|
||||
index 41dfd05a..d667b750 100644
|
||||
--- a/dandi/tests/fixtures.py
|
||||
+++ b/dandi/tests/fixtures.py
|
||||
@@ -126,9 +126,8 @@ def get_gitrepo_fixture(url, committish=None, scope="session"):
|
||||
|
||||
@pytest.fixture(scope=scope)
|
||||
def fixture():
|
||||
- # TODO: adapt reproman.tests.skip collection of skipif conditions
|
||||
- # skipif.no_network()
|
||||
- # skipif.no_git()
|
||||
+ skipif.no_network()
|
||||
+ skipif.no_git()
|
||||
|
||||
path = tempfile.mktemp() # not using pytest's tmpdir fixture to not
|
||||
# collide in different scopes etc. But we
|
||||
diff --git a/dandi/tests/skip.py b/dandi/tests/skip.py
|
||||
index 5fbc8cae..7fed7583 100644
|
||||
--- a/dandi/tests/skip.py
|
||||
+++ b/dandi/tests/skip.py
|
||||
@@ -121,6 +121,10 @@ def is_engine_running():
|
||||
return "docker engine not running", not is_engine_running()
|
||||
|
||||
|
||||
+def no_git():
|
||||
+ return "Git not installed", shutil.which("git") is None
|
||||
+
|
||||
+
|
||||
# ### END MODIFIED CODE
|
||||
|
||||
|
||||
@@ -157,6 +161,7 @@ def on_windows():
|
||||
# no_docker_dependencies,
|
||||
no_docker_commands,
|
||||
no_docker_engine,
|
||||
+ no_git,
|
||||
no_network,
|
||||
# no_singularity,
|
||||
no_ssh,
|
||||
diff --git a/dandi/tests/test_dandiapi.py b/dandi/tests/test_dandiapi.py
|
||||
index 49344700..03e092fa 100644
|
||||
--- a/dandi/tests/test_dandiapi.py
|
||||
+++ b/dandi/tests/test_dandiapi.py
|
||||
@@ -13,6 +13,7 @@
|
||||
import pytest
|
||||
import responses
|
||||
|
||||
+from .skip import mark
|
||||
from .. import dandiapi
|
||||
from ..consts import (
|
||||
DRAFT,
|
||||
@@ -279,6 +280,7 @@ def test_authenticate_bad_key_keyring_good_key_input(
|
||||
confirm_mock.assert_called_once_with("API key is invalid; enter another?")
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
def test_get_content_url(tmp_path):
|
||||
with DandiAPIClient.for_dandi_instance("dandi") as client:
|
||||
asset = client.get_dandiset("000027", "draft").get_asset_by_path(
|
||||
@@ -297,6 +299,7 @@ def test_get_content_url(tmp_path):
|
||||
fp.write(chunk)
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
def test_get_content_url_regex(tmp_path):
|
||||
with DandiAPIClient.for_dandi_instance("dandi") as client:
|
||||
asset = client.get_dandiset("000027", "draft").get_asset_by_path(
|
||||
@@ -309,6 +312,7 @@ def test_get_content_url_regex(tmp_path):
|
||||
fp.write(chunk)
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
def test_get_content_url_follow_one_redirects_strip_query():
|
||||
with DandiAPIClient.for_dandi_instance("dandi") as client:
|
||||
asset = client.get_dandiset("000027", "draft").get_asset_by_path(
|
||||
diff --git a/dandi/tests/test_dandiarchive.py b/dandi/tests/test_dandiarchive.py
|
||||
index 25da881c..9969a85e 100644
|
||||
--- a/dandi/tests/test_dandiarchive.py
|
||||
+++ b/dandi/tests/test_dandiarchive.py
|
||||
@@ -100,13 +100,14 @@
|
||||
version_id="draft",
|
||||
),
|
||||
),
|
||||
- (
|
||||
+ pytest.param(
|
||||
"DANDI:000027",
|
||||
DandisetURL(
|
||||
api_url=known_instances["dandi"].api,
|
||||
dandiset_id="000027",
|
||||
version_id="draft", # TODO: why not None?
|
||||
),
|
||||
+ marks=mark.skipif_no_network,
|
||||
),
|
||||
(
|
||||
"http://localhost:8000/api/dandisets/000002/versions/draft",
|
||||
diff --git a/dandi/tests/test_download.py b/dandi/tests/test_download.py
|
||||
index 2ae12623..f8b9eab5 100644
|
||||
--- a/dandi/tests/test_download.py
|
||||
+++ b/dandi/tests/test_download.py
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
import pytest
|
||||
|
||||
+from .skip import mark
|
||||
from ..consts import DRAFT
|
||||
from ..download import download
|
||||
from ..utils import find_files
|
||||
@@ -13,6 +14,7 @@
|
||||
|
||||
# both urls point to 000027 (lean test dataset), and both draft and "released"
|
||||
# version have only a single file ATM
|
||||
+@mark.skipif_no_network
|
||||
@pytest.mark.parametrize(
|
||||
"url",
|
||||
[ # Should go through API
|
||||
@@ -48,6 +50,7 @@ def test_download_000027(url, tmpdir):
|
||||
download(url, tmpdir, existing="refresh") # TODO: check that skipped (the same)
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
@pytest.mark.parametrize(
|
||||
"url",
|
||||
[ # Should go through API
|
||||
@@ -64,6 +67,7 @@ def test_download_000027_metadata_only(url, tmpdir):
|
||||
assert sorted(downloads) == ["dandiset.yaml"]
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
@pytest.mark.parametrize(
|
||||
"url",
|
||||
[ # Should go through API
|
||||
@@ -80,6 +84,7 @@ def test_download_000027_assets_only(url, tmpdir):
|
||||
assert sorted(downloads) == ["sub-RAT123", op.join("sub-RAT123", "sub-RAT123.nwb")]
|
||||
|
||||
|
||||
+@mark.skipif_no_network
|
||||
@pytest.mark.parametrize("resizer", [lambda sz: 0, lambda sz: sz // 2, lambda sz: sz])
|
||||
@pytest.mark.parametrize("version", ["0.210831.2033", DRAFT])
|
||||
def test_download_000027_resume(tmp_path, resizer, version):
|
||||
diff --git a/dandi/tests/test_utils.py b/dandi/tests/test_utils.py
|
||||
index 79973640..8e418d0f 100644
|
||||
--- a/dandi/tests/test_utils.py
|
||||
+++ b/dandi/tests/test_utils.py
|
||||
@@ -8,6 +8,7 @@
|
||||
import responses
|
||||
from semantic_version import Version
|
||||
|
||||
+from .skip import mark
|
||||
from .. import __version__
|
||||
from ..consts import DandiInstance, known_instances
|
||||
from ..exceptions import BadCliVersionError, CliVersionTooOldError
|
||||
@@ -325,9 +326,7 @@ def test_get_instance_actual_dandi():
|
||||
if "DANDI_REDIRECTOR_BASE" in os.environ:
|
||||
using_docker = pytest.mark.usefixtures("local_dandi_api")
|
||||
else:
|
||||
-
|
||||
- def using_docker(f):
|
||||
- return f
|
||||
+ using_docker = mark.skipif_no_network
|
||||
|
||||
|
||||
@pytest.mark.redirector
|
||||
diff --git a/tox.ini b/tox.ini
|
||||
index 132d89fd..5393d761 100644
|
||||
--- a/tox.ini
|
||||
+++ b/tox.ini
|
||||
@@ -4,6 +4,7 @@ envlist = lint,py3
|
||||
[testenv]
|
||||
setenv =
|
||||
DANDI_ALLOW_LOCALHOST_URLS=1
|
||||
+passenv = DANDI_*
|
||||
extras = test
|
||||
commands =
|
||||
# Using pytest-cov instead of using coverage directly leaves a bunch of
|
||||
|
Loading…
x
Reference in New Issue
Block a user