Richard W.M. Jones
2022-May-17 08:55 UTC
[Libguestfs] [PATCH nbdkit] s3: Only run the tests if boto3 is installed
ERROR: S3 (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: S3
Traceback (most recent call last):
File "/usr/lib64/python3.10/unittest/loader.py", line 154, in
loadTestsFromName
module = __import__(module_name)
File "/home/rjones/d/nbdkit/plugins/S3/S3.py", line 41, in
<module>
import boto3
ModuleNotFoundError: No module named 'boto3'
Reported-by: Laszlo Ersek
Fixes: commit 5130c43bc1f9
---
tests/test-S3-unit.sh | 1 +
tests/test-S3.sh | 1 +
2 files changed, 2 insertions(+)
diff --git a/tests/test-S3-unit.sh b/tests/test-S3-unit.sh
index 6b6adf02..8a32dd4c 100755
--- a/tests/test-S3-unit.sh
+++ b/tests/test-S3-unit.sh
@@ -37,6 +37,7 @@ set -x
requires $PYTHON --version
requires $PYTHON -c 'import unittest'
+requires $PYTHON -c 'import boto3'
# Python has proven very difficult to valgrind, therefore it is disabled.
if [ "$NBDKIT_VALGRIND" = "1" ]; then
diff --git a/tests/test-S3.sh b/tests/test-S3.sh
index de94751e..e51ef2ac 100755
--- a/tests/test-S3.sh
+++ b/tests/test-S3.sh
@@ -36,6 +36,7 @@ set -x
requires hexdump --version
requires $PYTHON --version
+requires $PYTHON -c 'import boto3'
requires nbdcopy --version
requires_plugin python
--
2.35.1
Laszlo Ersek
2022-May-17 09:53 UTC
[Libguestfs] [PATCH nbdkit] s3: Only run the tests if boto3 is installed
On 05/17/22 10:55, Richard W.M. Jones wrote:> ERROR: S3 (unittest.loader._FailedTest) > ---------------------------------------------------------------------- > ImportError: Failed to import test module: S3 > Traceback (most recent call last): > File "/usr/lib64/python3.10/unittest/loader.py", line 154, in loadTestsFromName > module = __import__(module_name) > File "/home/rjones/d/nbdkit/plugins/S3/S3.py", line 41, in <module> > import boto3 > ModuleNotFoundError: No module named 'boto3' > > Reported-by: Laszlo Ersek > Fixes: commit 5130c43bc1f9 > --- > tests/test-S3-unit.sh | 1 + > tests/test-S3.sh | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/tests/test-S3-unit.sh b/tests/test-S3-unit.sh > index 6b6adf02..8a32dd4c 100755 > --- a/tests/test-S3-unit.sh > +++ b/tests/test-S3-unit.sh > @@ -37,6 +37,7 @@ set -x > > requires $PYTHON --version > requires $PYTHON -c 'import unittest' > +requires $PYTHON -c 'import boto3' > > # Python has proven very difficult to valgrind, therefore it is disabled. > if [ "$NBDKIT_VALGRIND" = "1" ]; then > diff --git a/tests/test-S3.sh b/tests/test-S3.sh > index de94751e..e51ef2ac 100755 > --- a/tests/test-S3.sh > +++ b/tests/test-S3.sh > @@ -36,6 +36,7 @@ set -x > > requires hexdump --version > requires $PYTHON --version > +requires $PYTHON -c 'import boto3' > requires nbdcopy --version > requires_plugin python > >This was my very first idea too, but does it not conflict with having a fake boto3 module too, at "tests/test-S3/boto3"? In particular, "tests/test-S3.sh" already contains: # There is a fake boto3 module in test-S3/ which we use as a test # harness for the plugin. requires test -d test-S3 export PYTHONPATH=$srcdir/test-S3:$PYTHONPATH In other words, if you added the new line requires $PYTHON -c 'import boto3' to the same file, but under the PYTHONPATH extension, then I *think* the new "requires" would succeed, but the test case would fail the same way -- because the fake module does not expose the new exception type. Of course I'm also 100% fine if we make both test cases dependent on the *real* boto3 module, but should we then eliminate the "test-S3" directory? (The fake module, that is?) Thanks Laszlo