From: Jim Procter Date: Tue, 16 Jun 2020 16:26:14 +0000 (+0100) Subject: Merge branch 'bug/JAL-3561_translatefileformats' into patch/JAL-3561_JAL-3660_filefor... X-Git-Tag: Release_2_11_1_1~13^2~7^2 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fpatch%2FJAL-3561_JAL-3660_fileformatexport_CLI;hp=1434f6527228808e1661ad1ec9be21bde1788170;p=jalview.git Merge branch 'bug/JAL-3561_translatefileformats' into patch/JAL-3561_JAL-3660_fileformatexport_CLI --- diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index 8c9d391..208a6f1 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -30,6 +30,7 @@ import jalview.io.DataSourceType; import jalview.io.FileFormat; import jalview.io.FileFormatException; import jalview.io.FileFormatI; +import jalview.io.FileFormats; import jalview.io.FileLoader; import jalview.io.HtmlSvgOutput; import jalview.io.IdentifyFile; @@ -666,18 +667,34 @@ public class Jalview af.createEPS(outputFile); continue; } - - if (af.saveAlignment(file, format)) - { - System.out.println("Written alignment in " + format - + " format to " + file); + FileFormatI outFormat=null; + try { + outFormat = FileFormats.getInstance().forName(outputFormat); + } catch (Exception formatP) { + System.out.println("Couldn't parse "+outFormat+" as a valid Jalview format string."); } - else + if (outFormat != null) { - System.out.println("Error writing file " + file + " in " - + format + " format!!"); + if (!outFormat.isWritable()) + { + System.out.println( + "This version of Jalview does not support alignment export as " + + outputFormat); + } + else + { + if (af.saveAlignment(file, outFormat)) + { + System.out.println("Written alignment in " + format + + " format to " + file); + } + else + { + System.out.println("Error writing file " + file + " in " + + format + " format!!"); + } + } } - } while (aparser.getSize() > 0) diff --git a/test/jalview/bin/CommandLineOperations.java b/test/jalview/bin/CommandLineOperations.java index 59fc79d..a5067be 100644 --- a/test/jalview/bin/CommandLineOperations.java +++ b/test/jalview/bin/CommandLineOperations.java @@ -20,10 +20,17 @@ */ package jalview.bin; +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import jalview.gui.JvOptionPane; +import jalview.io.DataSourceType; +import jalview.io.FileFormat; +import jalview.io.FileFormatException; +import jalview.io.FileFormatI; +import jalview.io.FileFormats; +import jalview.io.IdentifyFile; import java.io.BufferedReader; import java.io.File; @@ -279,7 +286,7 @@ public class CommandLineOperations dataProvider = "headlessModeOutputOperationsData") public void testHeadlessModeOutputOperations(String harg, String type, String fileName, boolean withAWT, int expectedMinFileSize, - int timeout) + int timeout, String fileFormatType) { String cmd = harg + type + " " + fileName; // System.out.println(">>>>>>>>>>>>>>>> Command : " + cmd); @@ -291,6 +298,25 @@ public class CommandLineOperations assertTrue(file.exists(), msg); FileAssert.assertFile(file, msg); FileAssert.assertMinLength(file, expectedMinFileSize); + if (fileFormatType!=null && fileFormatType.length()>0) + { + FileFormatI format = FileFormats.getInstance() + .forName(fileFormatType); + if (format!=null) + { + try + { + FileFormatI exportedType = new IdentifyFile() + .identify(file.getAbsolutePath(), DataSourceType.FILE); + assertEquals(exportedType, format, + "Exported file type was wrong"); + } catch (FileFormatException e) + { + Assert.fail("Couldn't identify file " + file + + " as an alignment format", e); + } + } + } if (worker != null && worker.exit == null) { worker.interrupt(); @@ -343,51 +369,51 @@ public class CommandLineOperations String workingDir = "test/jalview/bin/"; return new Object[][] { { "nodisplay -open examples/uniref50.fa", " -eps", workingDir + "test_uniref50_out.eps", true, - MINFILESIZE_BIG, TEST_TIMEOUT }, + MINFILESIZE_BIG, TEST_TIMEOUT, null }, { "nodisplay -open examples/uniref50.fa", " -eps", workingDir + "test_uniref50_out.eps", false, - MINFILESIZE_BIG, TEST_TIMEOUT }, + MINFILESIZE_BIG, TEST_TIMEOUT, null }, { "nogui -open examples/uniref50.fa", " -eps", workingDir + "test_uniref50_out.eps", true, MINFILESIZE_BIG, - TEST_TIMEOUT }, + TEST_TIMEOUT, null }, { "nogui -open examples/uniref50.fa", " -eps", workingDir + "test_uniref50_out.eps", false, - MINFILESIZE_BIG, TEST_TIMEOUT }, + MINFILESIZE_BIG, TEST_TIMEOUT, null }, { "headless -open examples/uniref50.fa", " -eps", workingDir + "test_uniref50_out.eps", true, MINFILESIZE_BIG, - TEST_TIMEOUT }, + TEST_TIMEOUT, null }, { "headless -open examples/uniref50.fa", " -svg", workingDir + "test_uniref50_out.svg", false, - MINFILESIZE_BIG, TEST_TIMEOUT }, + MINFILESIZE_BIG, TEST_TIMEOUT, null }, { "headless -open examples/uniref50.fa", " -png", workingDir + "test_uniref50_out.png", true, MINFILESIZE_BIG, - TEST_TIMEOUT }, + TEST_TIMEOUT, null }, { "headless -open examples/uniref50.fa", " -html", workingDir + "test_uniref50_out.html", true, - MINFILESIZE_BIG, TEST_TIMEOUT }, + MINFILESIZE_BIG, TEST_TIMEOUT, null }, { "headless -open examples/uniref50.fa", " -fasta", workingDir + "test_uniref50_out.mfa", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.Fasta.toString() }, { "headless -open examples/uniref50.fa", " -clustal", workingDir + "test_uniref50_out.aln", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.Clustal.toString() }, { "headless -open examples/uniref50.fa", " -msf", workingDir + "test_uniref50_out.msf", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.MSF.toString() }, { "headless -open examples/uniref50.fa", " -pileup", workingDir + "test_uniref50_out.aln", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.Pileup.toString() }, { "headless -open examples/uniref50.fa", " -pir", workingDir + "test_uniref50_out.pir", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.PIR.toString() }, { "headless -open examples/uniref50.fa", " -pfam", workingDir + "test_uniref50_out.pfam", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.Pfam.toString() }, { "headless -open examples/uniref50.fa", " -blc", workingDir + "test_uniref50_out.blc", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, + TEST_TIMEOUT, FileFormat.BLC.toString() }, { "headless -open examples/uniref50.fa", " -jalview", workingDir + "test_uniref50_out.jvp", true, MINFILESIZE_SMALL, - TEST_TIMEOUT }, }; + TEST_TIMEOUT, FileFormat.Jalview.toString() }, }; } }