4 Commits

3 changed files with 92 additions and 4 deletions

View File

@@ -1,3 +1,15 @@
-------------------------------------------------------------------
Tue Sep 16 11:58:31 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Skip tests failing with Python 3.14
-------------------------------------------------------------------
Mon Sep 15 02:38:45 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-pyftpdlib-2.0.patch:
* Support pyftpdlib 2.0 in the testsuite.
- Drop Requires on psutil and pytz, undeclared.
-------------------------------------------------------------------
Sun Jun 30 20:36:23 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-fs
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2016 LISA GmbH, Bingen, Germany.
#
# All modifications and additions to the file contributed by third parties
@@ -27,6 +27,8 @@ URL: https://github.com/PyFilesystem/pyfilesystem2
Source: https://files.pythonhosted.org/packages/source/f/fs/fs-%{version}.tar.gz
# PATCH-FIX-UPSTREAM gh#PyFilesystem/pyfilesystem2#570
Patch0: support-python-312.patch
# PATCH-FIX-UPSTREAM gh#PyFilesystem/pyfilesystem2#595
Patch1: support-pyftpdlib-2.0.patch
BuildRequires: %{python_module appdirs >= 1.4.3}
BuildRequires: %{python_module parameterized}
BuildRequires: %{python_module pip}
@@ -41,8 +43,6 @@ BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-appdirs >= 1.4.3
Requires: python-psutil
Requires: python-pytz
Requires: python-setuptools
Requires: python-six >= 1.10.0
Recommends: python-pyftpdlib
@@ -69,7 +69,8 @@ sed -i -e '/install_requires/,/bdist_wheel/ s:~=:>=:g' setup.cfg
%check
export LANG=en_US.UTF-8
%pytest -k 'not (TestFTPFS and test_create or TestReadZipFSMem and test_seek)'
# test_complex_geturl, test_geturl_for_fs - fail with Python 3.14 https://github.com/PyFilesystem/pyfilesystem2/issues/596
%pytest -k 'not (TestFTPFS and test_create or TestReadZipFSMem and test_seek or test_complex_geturl or test_geturl_for_fs)'
%files %{python_files}
%doc README.md

View File

@@ -0,0 +1,75 @@
From a3a1005715adebcaabafc93d36369783d7fc5f9f Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Sat, 14 Jun 2025 07:47:07 -0400
Subject: [PATCH] Make tests compatible with pyftpdlib 2.0
Inspired by @mweinelt via
https://github.com/PyFilesystem/pyfilesystem2/pull/591.
---
tests/requirements.txt | 12 ++++--------
tests/test_ftpfs.py | 8 ++++----
2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/tests/requirements.txt b/tests/requirements.txt
index b7ff3ce4..0db1f97b 100644
--- a/tests/requirements.txt
+++ b/tests/requirements.txt
@@ -1,14 +1,10 @@
# the bare requirements for running tests
# pyftpdlib is needed to spawn a FTP server for the
-# FTPFS test suite
-pyftpdlib ~=1.5
-
-# these are optional dependencies for pyftpdlib that
-# are not explicitly listed, we need to install these
-# ourselves
-psutil ~=5.0
-pysendfile ~=2.0 ; python_version <= "3.3"
+# FTPFS test suite; we import from pyftpdlib.test, so
+# we need (at least some of) pyftpdlib's test
+# dependencies
+pyftpdlib[test] ~=2.0
# mock is only available from Python 3.3 onward, and
# mock v4+ doesn't support Python 2.7 anymore
diff --git a/tests/test_ftpfs.py b/tests/test_ftpfs.py
index 2bb2c73c..a3cfb04a 100644
--- a/tests/test_ftpfs.py
+++ b/tests/test_ftpfs.py
@@ -146,7 +146,7 @@ class TestFTPFS(FSTestCases, unittest.TestCase):
@classmethod
def setUpClass(cls):
- from pyftpdlib.test import ThreadedTestFTPd
+ from pyftpdlib.test import FtpdThreadWrapper
super(TestFTPFS, cls).setUpClass()
@@ -154,7 +154,7 @@ def setUpClass(cls):
cls._temp_path = os.path.join(cls._temp_dir, text_type(uuid.uuid4()))
os.mkdir(cls._temp_path)
- cls.server = ThreadedTestFTPd()
+ cls.server = FtpdThreadWrapper()
cls.server.shutdown_after = -1
cls.server.handler.authorizer = DummyAuthorizer()
cls.server.handler.authorizer.add_user(
@@ -336,7 +336,7 @@ class TestAnonFTPFS(FSTestCases, unittest.TestCase):
@classmethod
def setUpClass(cls):
- from pyftpdlib.test import ThreadedTestFTPd
+ from pyftpdlib.test import FtpdThreadWrapper
super(TestAnonFTPFS, cls).setUpClass()
@@ -344,7 +344,7 @@ def setUpClass(cls):
cls._temp_path = os.path.join(cls._temp_dir, text_type(uuid.uuid4()))
os.mkdir(cls._temp_path)
- cls.server = ThreadedTestFTPd()
+ cls.server = FtpdThreadWrapper()
cls.server.shutdown_after = -1
cls.server.handler.authorizer = DummyAuthorizer()
cls.server.handler.authorizer.add_anonymous(cls._temp_path, perm="elradfmw")