JAL-2311 suppress autocalc'd annotation to isolate the 'real' failure
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 22 Mar 2017 10:51:23 +0000 (10:51 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 22 Mar 2017 10:51:23 +0000 (10:51 +0000)
test/jalview/ws/jabaws/JpredJabaStructExportImport.java

index d5b6ed1..a21cfeb 100644 (file)
@@ -25,34 +25,41 @@ import static org.testng.AssertJUnit.assertTrue;
 
 import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
+import jalview.gui.AlignFrame;
 import jalview.gui.Jalview2XML;
 import jalview.gui.JvOptionPane;
 import jalview.io.AnnotationFile;
 import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
+import jalview.io.FileLoader;
 import jalview.io.FormatAdapter;
 import jalview.io.StockholmFileTest;
 import jalview.ws.jws2.JPred301Client;
 import jalview.ws.jws2.JabaParamStore;
-import jalview.ws.jws2.Jws2Discoverer;
 import jalview.ws.jws2.SequenceAnnotationWSClient;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.AutoCalcSetting;
 
 import java.awt.Component;
+import java.net.ConnectException;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
+import javax.xml.ws.WebServiceException;
 
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
+import compbio.data.msa.Category;
+import compbio.data.msa.JABAService;
 import compbio.metadata.Argument;
 import compbio.metadata.WrongParameterException;
+import compbio.ws.client.Jws2Client;
+import compbio.ws.client.Services;
 
 public class JpredJabaStructExportImport
 {
@@ -64,36 +71,56 @@ public class JpredJabaStructExportImport
     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
   }
 
-  public static String testseqs = "examples/uniref50.fa";
+  private static String testseqs = "examples/uniref50.fa";
 
-  public static Jws2Discoverer disc;
+  private static Jws2Instance jpredws;
 
-  public static Jws2Instance jpredws;
-
-  jalview.ws.jws2.JPred301Client jpredClient;
-
-  public static jalview.gui.AlignFrame af = null;
+  private static AlignFrame af = null;
 
   @BeforeClass(alwaysRun = true)
-  public static void setUpBeforeClass() throws Exception
+  public static void setUpBeforeClass() throws ConnectException,
+          WebServiceException
   {
     Cache.loadProperties("test/jalview/io/testProps.jvprops");
+    Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS",
+            Boolean.TRUE.toString());
+    Cache.applicationProperties.setProperty("SHOW_QUALITY",
+            Boolean.FALSE.toString());
+    Cache.applicationProperties.setProperty("SHOW_CONSERVATION",
+            Boolean.FALSE.toString());
+    Cache.applicationProperties.setProperty("SHOW_IDENTITY",
+            Boolean.FALSE.toString());
     Cache.initLogger();
-    disc = JalviewJabawsTestUtils.getJabawsDiscoverer(false);
+    getJabaws();
 
-    for (Jws2Instance svc : disc.getServices())
+    FileLoader fl = new FileLoader(false);
+    af = fl.LoadFileWaitTillLoaded(testseqs, DataSourceType.FILE);
+    assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
+  }
+
+  /**
+   * @throws WebServiceException
+   * @throws ConnectException
+   * 
+   */
+  static void getJabaws() throws ConnectException, WebServiceException
+  {
+    String jabaws = "http://www.compbio.dundee.ac.uk/jabaws";
+    JABAService service = null;
+    for (Category category : Category.getCategories())
     {
-      if (svc.getServiceTypeURI().toLowerCase().contains("jpred"))
+      for (Services srv : category.getServices())
       {
-        jpredws = svc;
+        if ("JpredWS".equals(srv.name()))
+        {
+          service = Jws2Client.connect(jabaws, srv);
+        }
       }
     }
-
-    System.out.println("State of jpredws: " + jpredws);
+    jpredws = new Jws2Instance(jabaws, "JpredWs",
+            "Secondary Structure Prediction",
+            "SERVICE: JpredWS version 3.0.3", service);
     Assert.assertNotNull(jpredws, "jpredws is null!");
-    jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
-    af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.FILE);
-    assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
   }
 
   @AfterClass(alwaysRun = true)
@@ -106,7 +133,7 @@ public class JpredJabaStructExportImport
     }
   }
 
-  @Test(groups = { "Functional" })
+  @Test(groups = { "Network" })
   public void testJPredStructOneSeqOnly()
   {
     af.selectAllSequenceMenuItem_actionPerformed(null);
@@ -116,7 +143,7 @@ public class JpredJabaStructExportImport
                     af.getViewport().getSelectionGroup().getSequenceAt(0),
                     false);
     af.hideSelSequences_actionPerformed(null);
-    jpredClient = new JPred301Client(jpredws, af, null, null);
+    JPred301Client jpredClient = new JPred301Client(jpredws, af, null, null);
 
     assertTrue(
             "Didn't find any default args to check for. Buggy implementation of hardwired arguments in client.",
@@ -158,11 +185,16 @@ public class JpredJabaStructExportImport
 
   }
 
-  @Test(groups = { "Functional" })
-  public void testJPredStructExport()
+  /*
+   * test disabled pending completion of JAL-1601
+   * (JPred301Client is currently hidden in Jalview in
+   * 
+   */
+  @Test(groups = { "Network" })
+  public void testJPredStructExport() throws InterruptedException
   {
 
-    jpredClient = new JPred301Client(jpredws, af, null, null);
+    JPred301Client jpredClient = new JPred301Client(jpredws, af, null, null);
 
     af.getViewport().getCalcManager().startWorker(jpredClient);
 
@@ -177,18 +209,24 @@ public class JpredJabaStructExportImport
       ;
     } while (af.getViewport().getCalcManager().isWorking());
 
+    synchronized (this)
+    {
+      wait(2000);
+    }
     AlignmentI orig_alig = af.getViewport().getAlignment();
-
-    testAnnotationFileIO("Testing JPredWS Annotation IO", orig_alig);
+    System.out.println("Alignment now has "
+            + orig_alig.getAlignmentAnnotation().length + " annotations");
+    verifyAnnotationFileIO("Testing JPredWS Annotation IO", orig_alig);
 
   }
 
-  public static void testAnnotationFileIO(String testname, AlignmentI al)
+  protected static void verifyAnnotationFileIO(String testname,
+          AlignmentI al)
   {
     try
     {
       // what format would be appropriate for RNAalifold annotations?
-      String aligfileout = FileFormat.Pfam.getWriter(null).print(
+      String aligfileout = FileFormat.Fasta.getWriter(null).print(
               al.getSequencesArray(), true);
 
       String anfileout = new AnnotationFile()
@@ -223,16 +261,16 @@ public class JpredJabaStructExportImport
     } catch (Exception e)
     {
       e.printStackTrace();
+      Assert.fail("Test "
+              + testname
+              + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
     }
-    Assert.fail("Test "
-            + testname
-            + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
   }
 
-  @Test(groups = { "Functional" })
+  @Test(groups = { "Network" }, enabled = false)
   public void testJpredwsSettingsRecovery()
   {
-    Assert.fail("not implemnented");
+    Assert.fail("not implemented");
     List<compbio.metadata.Argument> opts = new ArrayList<compbio.metadata.Argument>();
     for (compbio.metadata.Argument rg : (List<compbio.metadata.Argument>) jpredws
             .getRunnerConfig().getArguments())
@@ -254,7 +292,7 @@ public class JpredJabaStructExportImport
         opts.add(rg);
       }
     }
-    jpredClient = new JPred301Client(jpredws, af, null, opts);
+    JPred301Client jpredClient = new JPred301Client(jpredws, af, null, opts);
 
     af.getViewport().getCalcManager().startWorker(jpredClient);