Share more code to generate result tree.
authorDiane Trout <diane@ghic.org>
Tue, 24 Sep 2013 21:38:39 +0000 (14:38 -0700)
committerDiane Trout <diane@ghic.org>
Tue, 24 Sep 2013 21:38:39 +0000 (14:38 -0700)
This was in preparation of trying to support some mechanism
to submit different analysis from one directory somehow.

htsworkflow/submission/test/submission_test_common.py
htsworkflow/submission/test/test_daf.py
htsworkflow/submission/test/test_results.py
htsworkflow/submission/test/test_submission.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()
+
index 7959d1e13d9a323281885d63454790f34f85c48f..082c4ab5e5cb793e0d43c701d2cf1e9de08867eb 100644 (file)
@@ -1,4 +1,5 @@
 from contextlib import contextmanager
+import logging
 import os
 from StringIO import StringIO
 import shutil
@@ -167,7 +168,7 @@ def dump_model(model):
 
 class TestUCSCSubmission(TestCase):
     def setUp(self):
-        test_results.generate_sample_results_tree(self)
+        test_results.generate_sample_results_tree(self, 'daf_results')
 
     def tearDown(self):
         # see things created by temp_results.generate_sample_results_tree
@@ -331,9 +332,11 @@ def mktempfile(suffix='', prefix='tmp', dir=None):
 
 def suite():
     suite = TestSuite()
-    suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestUCSCInfo))
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestDAF))
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestUCSCSubmission))
     return suite
 
 if __name__ == "__main__":
+    logging.basicConfig(level=logging.DEBUG)
     from unittest2 import main
     main(defaultTest='suite')
index e4d28cfd20c1da4f5b5a642f4b02511c808a08b0..ee207cf57d972cc48dbda9279fba6683f29ab0bb 100644 (file)
@@ -8,29 +8,9 @@ from unittest2 import TestCase, defaultTestLoader
 from htsworkflow.submission.results import ResultMap
 from submission_test_common import *
 
-def generate_sample_results_tree(obj):
-    obj.tempdir = tempfile.mkdtemp(prefix="results_test")
-    obj.sourcedir = os.path.join(obj.tempdir, 'source')
-    obj.resultdir = os.path.join(obj.tempdir, 'results')
-
-    for d in [obj.sourcedir,
-              os.path.join(obj.sourcedir, S1_NAME),
-              os.path.join(obj.sourcedir, S2_NAME),
-              obj.resultdir]:
-        os.mkdir(os.path.join(obj.tempdir, d))
-
-    tomake = []
-    tomake.extend(S1_FILES)
-    tomake.extend(S2_FILES)
-    for f in tomake:
-        stream = open(os.path.join(obj.sourcedir, f), 'w')
-        stream.write(f)
-        stream.close()
-
-
 class TestResultMap(TestCase):
     def setUp(self):
-        generate_sample_results_tree(self)
+        generate_sample_results_tree(self, 'results_test')
 
     def tearDown(self):
         shutil.rmtree(self.tempdir)
@@ -96,6 +76,13 @@ class TestResultMap(TestCase):
                 os.path.islink(
                     os.path.join(self.resultdir, f)))
 
+    def test_make_from_shared_directory(self):
+        """Split multiple datasets stored in a single directory
+        """
+        self.skipTest("not implemented yet")
+        results = ResultMap()
+        results['S1'] = os.path.join(SCOMBINED_NAME, 's1*')
+        results['S2'] = os.path.join(SCOMBINED_NAME, 's2*')
 
 def suite():
     suite = defaultTestLoader.loadTestsFromTestCase(TestResultMap)
index 90852ceb766f56a871fc199d675982fc095b98c2..53b4e91cc5ecdce288d63ac30b6c442a72c8e321 100644 (file)
@@ -1,3 +1,4 @@
+
 import os
 from StringIO import StringIO
 import shutil
@@ -24,24 +25,6 @@ import RDF
 #import logging
 #logging.basicConfig(level=logging.DEBUG)
 
-def generate_sample_results_tree(obj):
-    obj.tempdir = tempfile.mkdtemp(prefix="submission_test")
-    obj.sourcedir = os.path.join(obj.tempdir, 'source')
-    obj.resultdir = os.path.join(obj.tempdir, 'results')
-
-    for d in [os.path.join(obj.tempdir, S1_NAME),
-              os.path.join(obj.tempdir, S2_NAME),
-              ]:
-        os.mkdir(os.path.join(obj.tempdir, d))
-
-    tomake = []
-    tomake.extend(S1_FILES)
-    tomake.extend(S2_FILES)
-    for f in tomake:
-        stream = open(os.path.join(obj.tempdir, f), 'w')
-        stream.write(f)
-        stream.close()
-
 class TestSubmissionModule(TestCase):
     def test_empty_list_submission(self):
         model = get_model()
@@ -84,7 +67,7 @@ class TestSubmissionModule(TestCase):
 
 class TestSubmission(TestCase):
     def setUp(self):
-        generate_sample_results_tree(self)
+        generate_sample_results_tree(self, 'submission_test')
         self.model = get_model()
 
     def tearDown(self):
@@ -124,8 +107,8 @@ thisView:alignments ucscDaf:filename_re ".*\\.bam$" ;
         map = ResultMap()
         print self.tempdir
         print os.listdir(self.tempdir)
-        map['1000'] = os.path.join(self.tempdir, S1_NAME)
-        map['2000'] = os.path.join(self.tempdir, S2_NAME)
+        map['1000'] = os.path.join(self.sourcedir, S1_NAME)
+        map['2000'] = os.path.join(self.sourcedir, S2_NAME)
 
         s = Submission('foo', self.model, 'http://localhost')
         mock = MockAddDetails(self.model, turtle)