Package: python3-biopython
Severity: important
Tags: upstream

Hello,

python3-biopython is incompatible with muscle >= 5. Upstream tests
detect this incompatibility:

======================================================================
ERROR: test_Muscle_profile_simple (test_Muscle_tool.MuscleApplication)
Simple round-trip through app doing a profile alignment.
----------------------------------------------------------------------
Traceback (most recent call last):
  File
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/Tests/test_Muscle_tool.py",
line 133, in test_Muscle_profile_simple
    output, error = cmdline()
  File
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/Bio/Application/__init__.py",
line 574, in __call__
    raise ApplicationError(return_code, str(self), stdout_str, stderr_str)
Bio.Application.ApplicationError: Non-zero return code 1 from 'muscle
-out Fasta/temp_align_out3.fa -profile -in1 Fasta/fa01 -in2 Fasta/f001',
message 'Invalid command line'

(only one failing test is shown for brevity)

However, tests with muscle are skipped as the build system is unable to
detect newer muscle. I attach a patch prodding the build system to run
muscle tests. Normally I would push such patch to cause FTBFS for
package, but now I think failures of integration with muscle should not
cause AUTORM for Biopython. Nevertheless, I think this should be fixed
for bookworm.

Andrius
--- a/Tests/test_Muscle_tool.py
+++ b/Tests/test_Muscle_tool.py
@@ -49,14 +49,13 @@
         if muscle_exe:
             break
 else:
-    from subprocess import getoutput
+    from subprocess import getstatusoutput
 
-    output = getoutput("muscle -version")
+    exitcode, _ = getstatusoutput("muscle -version")
     # Since "not found" may be in another language, try and be sure this is
     # really the MUSCLE tool's output
-    if "not found" not in output and "not recognized" not in output:
-        if "MUSCLE" in output and "Edgar" in output:
-            muscle_exe = "muscle"
+    if exitcode == 0:
+        muscle_exe = "muscle"
 
 if not muscle_exe:
     raise MissingExternalDependencyError(

Reply via email to