2 from __future__ import absolute_import
4 from pprint import pprint
7 from unittest import TestCase, defaultTestLoader
9 from htsworkflow.submission.results import ResultMap
10 from .submission_test_common import *
12 class TestResultMap(TestCase):
14 generate_sample_results_tree(self, 'results_test')
17 shutil.rmtree(self.tempdir)
19 def test_dict_like(self):
20 """Make sure the result map works like an ordered dictionary
23 results['1000'] = 'dir1000'
24 results['2000'] = 'dir2000'
25 results['1500'] = 'dir1500'
27 self.failUnlessEqual(results.keys(), ['1000', '2000', '1500'])
28 self.failUnlessEqual(list(results.values()),
29 ['dir1000', 'dir2000', 'dir1500'])
30 self.failUnlessEqual(list(results.items()),
35 self.failUnlessEqual(results['1000'], 'dir1000')
36 self.failUnlessEqual(results['1500'], 'dir1500')
37 self.failUnlessEqual(results['2000'], 'dir2000')
39 self.assertTrue(u'2000' in results)
40 self.assertTrue('2000' in results)
41 self.assertFalse(u'77777' in results)
42 self.assertFalse('77777' in results)
44 def test_make_from_absolute(self):
45 """Test that make from works if ResultMap has absolute paths
48 sample1_dir = os.path.join(self.resultdir, S1_NAME)
49 sample2_dir = os.path.join(self.resultdir, S2_NAME)
50 results['1000'] = sample1_dir
51 results['2000'] = sample2_dir
53 results.make_tree_from(self.sourcedir, self.resultdir)
54 self.failUnless(os.path.isdir(sample1_dir))
55 self.failUnless(os.path.isdir(sample2_dir))
57 for f in S1_FILES + S2_FILES:
60 os.path.join(self.resultdir, f)))
62 def test_make_from_filename(self):
63 """Test that make from works if ResultMap has no path
66 results['1000'] = S1_NAME
67 results['2000'] = S2_NAME
69 results.make_tree_from(self.sourcedir, self.resultdir)
70 sample1_dir = os.path.join(self.resultdir, S1_NAME)
71 sample2_dir = os.path.join(self.resultdir, S2_NAME)
72 self.failUnless(os.path.isdir(sample1_dir))
73 self.failUnless(os.path.isdir(sample2_dir))
75 for f in S1_FILES + S2_FILES:
78 os.path.join(self.resultdir, f)))
80 def test_make_from_shared_directory(self):
81 """Split multiple datasets stored in a single directory
83 self.skipTest("not implemented yet")
85 results['S1'] = os.path.join(SCOMBINED_NAME, 's1*')
86 results['S2'] = os.path.join(SCOMBINED_NAME, 's2*')
89 suite = defaultTestLoader.loadTestsFromTestCase(TestResultMap)
92 if __name__ == "__main__":
94 logging.basicConfig(level=logging.DEBUG)
95 from unittest import main
96 main(defaultTest='suite')