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 _______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
