python3Packages.rclone-python: run tests

This commit is contained in:
Robert Schütz 2025-07-14 14:29:54 -07:00
parent 44c0690eb7
commit e6dce4ad3e
2 changed files with 54 additions and 2 deletions

View File

@ -2,10 +2,12 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
replaceVars,
setuptools,
rich,
rclone,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
@ -32,8 +34,28 @@ buildPythonPackage rec {
rich
];
# tests require working internet connection
doCheck = false;
nativeCheckInputs = [
pytestCheckHook
writableTmpDirAsHomeHook
];
preCheck = ''
# Unlike upstream we don't actually run an S3 server for testing.
# See https://github.com/Johannes11833/rclone_python/blob/master/launch_test_server.sh
mkdir -p "$HOME/.config/rclone"
cat > "$HOME/.config/rclone/rclone.conf" <<EOF
[test_server_s3]
type = combine
upstreams = "testdir=$(mktemp -d)"
EOF
'';
disabledTestPaths = [
# test requires a remote that supports public links
"tests/test_link.py"
# test looks up latest version on rclone.org
"tests/test_version.py"
];
pythonImportsCheck = [ "rclone_python" ];

View File

@ -97,3 +97,33 @@ index d4a8413..1b29bd8 100644
# add optional arguments and flags to the command
args_str = args2string(args)
diff --git a/tests/test_copy.py b/tests/test_copy.py
index 4ded5fa..1cae53b 100644
--- a/tests/test_copy.py
+++ b/tests/test_copy.py
@@ -45,11 +45,11 @@ def create_local_file(
@pytest.mark.parametrize(
"wrapper_command,rclone_command",
[
- (rclone.copy, "rclone copy"),
- (rclone.copyto, "rclone copyto"),
- (rclone.sync, "rclone sync"),
- (rclone.move, "rclone move"),
- (rclone.moveto, "rclone moveto"),
+ (rclone.copy, "@rclone@ copy"),
+ (rclone.copyto, "@rclone@ copyto"),
+ (rclone.sync, "@rclone@ sync"),
+ (rclone.move, "@rclone@ move"),
+ (rclone.moveto, "@rclone@ moveto"),
],
)
def test_rclone_command_called(wrapper_command: Callable, rclone_command: str):
@@ -62,7 +62,7 @@ def test_rclone_command_called(wrapper_command: Callable, rclone_command: str):
rclone.utils.subprocess,
"Popen",
return_value=subprocess.Popen(
- "rclone help", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
+ "@rclone@ help", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True
),
) as mock:
wrapper_command("nothing/not_a.file", "fake_remote:unicorn/folder")