Share more code to generate result tree.
[htsworkflow.git] / htsworkflow / submission / test / submission_test_common.py
index 32e87f7824888b0f0adfbbc1fda1fe1e3cb4e809..3f435761b8d0ba7a8b0aae3a33da87219cdee32d 100644 (file)
@@ -1,12 +1,14 @@
 """Code shared between test cases.
 """
 import RDF
+import logging
 import os
 import tempfile
 import htsworkflow.util.rdfhelp
 
 S1_NAME = '1000-sample'
 S2_NAME = '2000-sample'
+SCOMBINED_NAME = 'directory'
 
 S1_FILES = [
     os.path.join(S1_NAME, 'file1_l8_r1.fastq'),
@@ -18,6 +20,14 @@ S2_FILES = [
     os.path.join(S2_NAME, 'file1_l5.fastq'),
 ]
 
+SCOMBINED_FILES = [
+    os.path.join(SCOMBINED_NAME, 's1_file1.bam'),
+    os.path.join(SCOMBINED_NAME, 's1_l5.fastq'),
+    os.path.join(SCOMBINED_NAME, 's2_file1.bam'),
+    os.path.join(SCOMBINED_NAME, 's2_l4.read1.fastq'),
+    os.path.join(SCOMBINED_NAME, 's2_l4.read2.fastq'),
+]
+
 TURTLE_PREFIX = htsworkflow.util.rdfhelp.get_turtle_header()
 
 S1_TURTLE = TURTLE_PREFIX + """
@@ -68,3 +78,26 @@ class MockAddDetails(object):
             break
         assert found
 
+def generate_sample_results_tree(obj, prefix):
+    obj.tempdir = tempfile.mkdtemp(prefix=prefix)
+    obj.sourcedir = os.path.join(obj.tempdir, 'source')
+    os.mkdir(obj.sourcedir)
+    obj.resultdir = os.path.join(obj.tempdir, 'results')
+    os.mkdir(obj.resultdir)
+
+    for d in [os.path.join(obj.sourcedir, S1_NAME),
+              os.path.join(obj.sourcedir, S2_NAME),
+              ]:
+        logging.debug("Creating: %s", d)
+        os.mkdir(d)
+
+    tomake = []
+    tomake.extend(S1_FILES)
+    tomake.extend(S2_FILES)
+    for f in tomake:
+        target = os.path.join(obj.sourcedir, f)
+        logging.debug("Creating: %s", target)
+        stream = open(target, 'w')
+        stream.write(f)
+        stream.close()
+