Skip to content

Commit de2e4df

Browse files
committed
Make SequenceIntegrationTests work across-workbooks
1 parent 2d1f04d commit de2e4df

File tree

1 file changed

+34
-27
lines changed

1 file changed

+34
-27
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceIntegrationTests.java

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.labkey.api.data.Table;
3030
import org.labkey.api.data.TableInfo;
3131
import org.labkey.api.data.TableSelector;
32+
import org.labkey.api.data.WorkbookContainerType;
3233
import org.labkey.api.exp.api.DataType;
3334
import org.labkey.api.exp.api.ExpData;
3435
import org.labkey.api.exp.api.ExperimentService;
@@ -490,7 +491,7 @@ public boolean accept(File dir, String name)
490491
Assert.assertEquals("Incorrect number of outputs created", expectedOutputs.size(), files.size());
491492
}
492493

493-
protected Set<PipelineJob> createPipelineJob(String jobName, JSONObject config, SequenceAnalysisController.AnalyzeForm.TYPE type) throws Exception
494+
protected Set<PipelineJob> createPipelineJob(String jobName, JSONObject config, SequenceAnalysisController.AnalyzeForm.TYPE type, boolean createNewWorkbook) throws Exception
494495
{
495496
Map<String, Object> headers = new HashMap<>();
496497
headers.put("Content-Type", "application/json");
@@ -503,7 +504,13 @@ protected Set<PipelineJob> createPipelineJob(String jobName, JSONObject config,
503504
json.put("type", type.name());
504505
String requestContent = json.toString();
505506

506-
HttpServletRequest request = ViewServlet.mockRequest(RequestMethod.POST.name(), DetailsURL.fromString("/sequenceanalysis/startPipelineJob.view").copy(_project).getActionURL(), _context.getUser(), headers, requestContent);
507+
Container pipelineJobContainer = _project;
508+
if (createNewWorkbook)
509+
{
510+
pipelineJobContainer = ContainerManager.createContainer(_project, null, "Workbook: " + jobName, null, WorkbookContainerType.NAME, TestContext.get().getUser());
511+
}
512+
513+
HttpServletRequest request = ViewServlet.mockRequest(RequestMethod.POST.name(), DetailsURL.fromString("/sequenceanalysis/startPipelineJob.view").copy(pipelineJobContainer).getActionURL(), _context.getUser(), headers, requestContent);
507514

508515
MockHttpServletResponse response = ViewServlet.mockDispatch(request, null);
509516
JSONObject responseJson = new JSONObject(response.getContentAsString());
@@ -783,7 +790,7 @@ public void basicTest() throws Exception
783790

784791
appendSamplesForImport(config, List.of(g));
785792

786-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
793+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, true);
787794
waitForJobs(jobs);
788795

789796
Set<File> expectedOutputs = new HashSet<>();
@@ -828,7 +835,7 @@ public void leaveInPlaceTest() throws Exception
828835
appendSamplesForImport(config, List.of(g));
829836
config.put("inputFileTreatment", "leaveInPlace");
830837

831-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
838+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, false);
832839
waitForJobs(jobs);
833840

834841
Set<File> expectedOutputs = new HashSet<>();
@@ -906,7 +913,7 @@ private void runMergePipelineJob(String jobName, boolean deleteIntermediates, St
906913
config.put("inputfile.runFastqc", true);
907914
appendSamplesForImport(config, Arrays.asList(g, g2, g3));
908915

909-
Set<PipelineJob> jobsUnsorted = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
916+
Set<PipelineJob> jobsUnsorted = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, true);
910917
waitForJobs(jobsUnsorted);
911918

912919
List<PipelineJob> jobs = new ArrayList<>(jobsUnsorted);
@@ -1117,7 +1124,7 @@ public void barcodeTest() throws Exception
11171124
String[] fileNames = new String[]{DUAL_BARCODE_FILENAME};
11181125

11191126
JSONObject config = getBarcodeConfig(jobName, fileNames, prefix);
1120-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
1127+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, true);
11211128
waitForJobs(jobs);
11221129

11231130
File basedir = getBaseDir(jobs.iterator().next());
@@ -1166,7 +1173,7 @@ public void barcodeTestDeletingIntermediates() throws Exception
11661173
config.put("deleteIntermediateFiles", true);
11671174
config.put("inputFileTreatment", "compress");
11681175

1169-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
1176+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, true);
11701177
waitForJobs(jobs);
11711178

11721179
File basedir = getBaseDir(jobs.iterator().next());
@@ -1227,7 +1234,7 @@ public void pairedEndTest() throws Exception
12271234

12281235
appendSamplesForImport(config, List.of(g));
12291236

1230-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
1237+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, true);
12311238
waitForJobs(jobs);
12321239

12331240
Set<File> expectedOutputs = new HashSet<>();
@@ -1281,7 +1288,7 @@ public void pairedEndTestMovingInputs() throws Exception
12811288

12821289
appendSamplesForImport(config, List.of(g));
12831290

1284-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
1291+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, false);
12851292
waitForJobs(jobs);
12861293

12871294
Set<File> expectedOutputs = new HashSet<>();
@@ -1337,7 +1344,7 @@ public void pairedEndTestDeletingInputs() throws Exception
13371344

13381345
appendSamplesForImport(config, List.of(g));
13391346

1340-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport);
1347+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.readsetImport, true);
13411348
waitForJobs(jobs);
13421349

13431350
Set<File> expectedOutputs = new HashSet<>();
@@ -1834,7 +1841,7 @@ public void testMosaik() throws Exception
18341841

18351842
appendSamplesForAlignment(config, _readsets);
18361843

1837-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
1844+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
18381845
waitForJobs(jobs);
18391846

18401847
validateInputs();
@@ -1882,7 +1889,7 @@ public void testMosaikWithBamPostProcessing() throws Exception
18821889

18831890
appendSamplesForAlignment(config, _readsets);
18841891

1885-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
1892+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
18861893
waitForJobs(jobs);
18871894

18881895
List<String> extraFiles = new ArrayList<>();
@@ -1981,7 +1988,7 @@ public void testMosaikWithBamPostProcessingAndDelete() throws Exception
19811988

19821989
appendSamplesForAlignment(config, _readsets);
19831990

1984-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
1991+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, false);
19851992
waitForJobs(jobs);
19861993

19871994
Set<String> extraFiles = new HashSet<>();
@@ -2040,7 +2047,7 @@ public void testMosaikDeletingIntermediates() throws Exception
20402047
config.put("deleteIntermediateFiles", true);
20412048
appendSamplesForAlignment(config, _readsets);
20422049

2043-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2050+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
20442051
waitForJobs(jobs);
20452052

20462053
Set<String> extraFiles = new HashSet<>();
@@ -2094,7 +2101,7 @@ public void testBWASW() throws Exception
20942101
config.put("alignment", "BWA-SW");
20952102
appendSamplesForAlignment(config, _readsets);
20962103

2097-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2104+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
20982105
waitForJobs(jobs);
20992106

21002107
Set<String> extraFiles = new HashSet<>();
@@ -2158,7 +2165,7 @@ public void testBWAMem() throws Exception
21582165
config.put("alignment", "BWA-Mem");
21592166
appendSamplesForAlignment(config, _readsets);
21602167

2161-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2168+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
21622169
waitForJobs(jobs);
21632170

21642171
Set<String> extraFiles = new HashSet<>();
@@ -2226,7 +2233,7 @@ public void testBWAWithAdapters() throws Exception
22262233

22272234
appendSamplesForAlignment(config, _readsets);
22282235

2229-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2236+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
22302237
waitForJobs(jobs);
22312238

22322239
Set<String> extraFiles = new HashSet<>();
@@ -2327,7 +2334,7 @@ public void testBWA() throws Exception
23272334
config.put("alignment", "BWA");
23282335
appendSamplesForAlignment(config, _readsets);
23292336

2330-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2337+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
23312338
waitForJobs(jobs);
23322339

23332340
Set<String> extraFiles = new HashSet<>();
@@ -2397,7 +2404,7 @@ public void testBowtie() throws Exception
23972404
config.put("alignment", "Bowtie");
23982405
appendSamplesForAlignment(config, _readsets);
23992406

2400-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2407+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
24012408
waitForJobs(jobs);
24022409

24032410
Set<String> extraFiles = new HashSet<>();
@@ -2468,7 +2475,7 @@ public void testBowtieDeletingIntermediates() throws Exception
24682475
config.put("deleteIntermediateFiles", true);
24692476
appendSamplesForAlignment(config, _readsets);
24702477

2471-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2478+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
24722479
waitForJobs(jobs);
24732480

24742481
Set<String> extraFiles = new HashSet<>();
@@ -2538,7 +2545,7 @@ public void testBwaMemWithSavedLibrary() throws Exception
25382545
config.put("referenceLibraryCreation.SavedLibrary.libraryId", libraryId);
25392546
appendSamplesForAlignment(config, Collections.singletonList(_readsets.get(0)));
25402547

2541-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2548+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
25422549
waitForJobs(jobs);
25432550

25442551
//we expect the index to get copied back to the reference library location
@@ -2619,7 +2626,7 @@ public void testBwaMemWithSavedLibrary2() throws Exception
26192626
config.put("referenceLibraryCreation.SavedLibrary.libraryId", libraryId);
26202627
appendSamplesForAlignment(config, _readsets);
26212628

2622-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2629+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, false);
26232630
waitForJobs(jobs);
26242631

26252632
Set<String> extraFiles = new HashSet<>();
@@ -2697,7 +2704,7 @@ public void testMergedAlignments() throws Exception
26972704

26982705
appendSamplesForAlignment(config, models);
26992706

2700-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2707+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
27012708
waitForJobs(jobs);
27022709

27032710
Set<String> extraFiles = new HashSet<>();
@@ -2749,7 +2756,7 @@ public void testBowtie2() throws Exception
27492756
config.put("alignment", "Bowtie2");
27502757
appendSamplesForAlignment(config, _readsets);
27512758

2752-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2759+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
27532760
waitForJobs(jobs);
27542761

27552762
Set<String> extraFiles = new HashSet<>();
@@ -2849,7 +2856,7 @@ public void testStar() throws Exception
28492856
config.put("alignment", "STAR");
28502857
appendSamplesForAlignment(config, _readsets);
28512858

2852-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2859+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
28532860
waitForJobs(jobs);
28542861

28552862
Set<String> extraFiles = new HashSet<>();
@@ -2939,7 +2946,7 @@ public void testBismarkWithSavedLibraryAndAdapters() throws Exception
29392946
config.put("fastqProcessing.AdapterTrimming.adapters", "[[\"Nextera Transposon Adapter A\",\"AGATGTGTATAAGAGACAG\",true,true]]");
29402947
appendSamplesForAlignment(config, _readsets);
29412948

2942-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
2949+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
29432950
waitForJobs(jobs);
29442951

29452952
//we expect the index to get copied back to the reference library location
@@ -3091,7 +3098,7 @@ public void testBismarkWithSavedLibraryAdaptersAndDelete() throws Exception
30913098
config.put("fastqProcessing.AdapterTrimming.adapters", "[[\"Nextera Transposon Adapter A\",\"AGATGTGTATAAGAGACAG\",true,true]]");
30923099
appendSamplesForAlignment(config, _readsets);
30933100

3094-
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment);
3101+
Set<PipelineJob> jobs = createPipelineJob(jobName, config, SequenceAnalysisController.AnalyzeForm.TYPE.alignment, true);
30953102
waitForJobs(jobs);
30963103

30973104
Set<String> extraFiles = new HashSet<>();

0 commit comments

Comments
 (0)