commit:     eda5e9bfd6481ef10149cc981364a27457fd5a8c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 16 10:38:12 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Dec 16 10:40:20 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eda5e9bf

dev-python/fsspec: Fix tests

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../fsspec/files/fsspec-0.8.2-test-cleanup.patch   | 80 ++++++++++++++++++++++
 dev-python/fsspec/fsspec-0.8.2.ebuild              |  4 ++
 2 files changed, 84 insertions(+)

diff --git a/dev-python/fsspec/files/fsspec-0.8.2-test-cleanup.patch 
b/dev-python/fsspec/files/fsspec-0.8.2-test-cleanup.patch
new file mode 100644
index 00000000000..8227c2d23c6
--- /dev/null
+++ b/dev-python/fsspec/files/fsspec-0.8.2-test-cleanup.patch
@@ -0,0 +1,80 @@
+From f933694238f78fbef91367d5051d515e0f9d0635 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
+Date: Wed, 16 Dec 2020 11:32:04 +0100
+Subject: [PATCH] clean up properly after test_git
+
+Restore original directory after test_git.  Otherwise, next tests
+are run in non-existing directory and fail:
+
+[...]
+>           cwd = os.getcwd()
+E           FileNotFoundError: [Errno 2] No such file or directory
+
+/usr/lib/python3.9/site-packages/gunicorn/util.py:443: FileNotFoundError
+
+While at it, reflow the logic so that the temporary directory is always
+cleaned, even if the test fails in middle of setup.
+---
+ fsspec/implementations/tests/test_git.py | 42 +++++++++++++-----------
+ 1 file changed, 22 insertions(+), 20 deletions(-)
+
+diff --git a/fsspec/implementations/tests/test_git.py 
b/fsspec/implementations/tests/test_git.py
+index 562b228..4cd4c3f 100644
+--- a/fsspec/implementations/tests/test_git.py
++++ b/fsspec/implementations/tests/test_git.py
+@@ -10,30 +10,32 @@ pygit2 = pytest.importorskip("pygit2")
+ 
+ @pytest.fixture()
+ def repo():
++    orig_dir = os.getcwd()
+     d = tempfile.mkdtemp()
+-    os.chdir(d)
+-    subprocess.call("git init", shell=True, cwd=d)
+-    subprocess.call("git init", shell=True, cwd=d)
+-    subprocess.call('git config user.email "[email protected]"', shell=True, 
cwd=d)
+-    subprocess.call('git config user.name "Your Name"', shell=True, cwd=d)
+-    open(os.path.join(d, "file1"), "wb").write(b"data0")
+-    subprocess.call("git add file1", shell=True, cwd=d)
+-    subprocess.call('git commit -m "init"', shell=True, cwd=d)
+-    sha = open(os.path.join(d, ".git/refs/heads/master"), "r").read().strip()
+-    open(os.path.join(d, "file1"), "wb").write(b"data00")
+-    subprocess.check_output('git commit -a -m "tagger"', shell=True, cwd=d)
+-    subprocess.call('git tag -a thetag -m "make tag"', shell=True, cwd=d)
+-    open(os.path.join(d, "file2"), "wb").write(b"data000")
+-    subprocess.call("git add file2", shell=True)
+-    subprocess.call('git commit -m "master tip"', shell=True, cwd=d)
+-    subprocess.call("git checkout -b abranch", shell=True, cwd=d)
+-    os.mkdir("inner")
+-    open(os.path.join(d, "inner", "file1"), "wb").write(b"data3")
+-    subprocess.call("git add inner/file1", shell=True, cwd=d)
+-    subprocess.call('git commit -m "branch tip"', shell=True, cwd=d)
+     try:
++        os.chdir(d)
++        subprocess.call("git init", shell=True, cwd=d)
++        subprocess.call("git init", shell=True, cwd=d)
++        subprocess.call('git config user.email "[email protected]"', 
shell=True, cwd=d)
++        subprocess.call('git config user.name "Your Name"', shell=True, cwd=d)
++        open(os.path.join(d, "file1"), "wb").write(b"data0")
++        subprocess.call("git add file1", shell=True, cwd=d)
++        subprocess.call('git commit -m "init"', shell=True, cwd=d)
++        sha = open(os.path.join(d, ".git/refs/heads/master"), 
"r").read().strip()
++        open(os.path.join(d, "file1"), "wb").write(b"data00")
++        subprocess.check_output('git commit -a -m "tagger"', shell=True, 
cwd=d)
++        subprocess.call('git tag -a thetag -m "make tag"', shell=True, cwd=d)
++        open(os.path.join(d, "file2"), "wb").write(b"data000")
++        subprocess.call("git add file2", shell=True)
++        subprocess.call('git commit -m "master tip"', shell=True, cwd=d)
++        subprocess.call("git checkout -b abranch", shell=True, cwd=d)
++        os.mkdir("inner")
++        open(os.path.join(d, "inner", "file1"), "wb").write(b"data3")
++        subprocess.call("git add inner/file1", shell=True, cwd=d)
++        subprocess.call('git commit -m "branch tip"', shell=True, cwd=d)
+         yield d, sha
+     finally:
++        os.chdir(orig_dir)
+         shutil.rmtree(d)
+ 
+ 
+-- 
+2.29.2
+

diff --git a/dev-python/fsspec/fsspec-0.8.2.ebuild 
b/dev-python/fsspec/fsspec-0.8.2.ebuild
index fe649f0feac..7e7f5fb6a32 100644
--- a/dev-python/fsspec/fsspec-0.8.2.ebuild
+++ b/dev-python/fsspec/fsspec-0.8.2.ebuild
@@ -31,6 +31,10 @@ BDEPEND="
 
 distutils_enable_tests pytest
 
+PATCHES=(
+       "${FILESDIR}"/fsspec-0.8.2-test-cleanup.patch
+)
+
 src_test() {
        git config --global user.email "[email protected]" || die
        git config --global user.name "Your Name" || die

Reply via email to