3 from pprint import pprint
6 from unittest import TestCase, defaultTestLoader
8 from htsworkflow.submission.results import ResultMap
9 from submission_test_common import *
11 class TestResultMap(TestCase):
13 generate_sample_results_tree(self, 'results_test')
16 shutil.rmtree(self.tempdir)
18 def test_dict_like(self):
19 """Make sure the result map works like an ordered dictionary
22 results['1000'] = 'dir1000'
23 results['2000'] = 'dir2000'
24 results['1500'] = 'dir1500'
26 self.failUnlessEqual(results.keys(), ['1000', '2000', '1500'])
27 self.failUnlessEqual(list(results.values()),
28 ['dir1000', 'dir2000', 'dir1500'])
29 self.failUnlessEqual(list(results.items()),
34 self.failUnlessEqual(results['1000'], 'dir1000')
35 self.failUnlessEqual(results['1500'], 'dir1500')
36 self.failUnlessEqual(results['2000'], 'dir2000')
38 self.assertTrue(u'2000' in results)
39 self.assertTrue('2000' in results)
40 self.assertFalse(u'77777' in results)
41 self.assertFalse('77777' in results)
43 def test_make_from_absolute(self):
44 """Test that make from works if ResultMap has absolute paths
47 sample1_dir = os.path.join(self.resultdir, S1_NAME)
48 sample2_dir = os.path.join(self.resultdir, S2_NAME)
49 results['1000'] = sample1_dir
50 results['2000'] = sample2_dir
52 results.make_tree_from(self.sourcedir, self.resultdir)
53 self.failUnless(os.path.isdir(sample1_dir))
54 self.failUnless(os.path.isdir(sample2_dir))
56 for f in S1_FILES + S2_FILES:
59 os.path.join(self.resultdir, f)))
61 def test_make_from_filename(self):
62 """Test that make from works if ResultMap has no path
65 results['1000'] = S1_NAME
66 results['2000'] = S2_NAME
68 results.make_tree_from(self.sourcedir, self.resultdir)
69 sample1_dir = os.path.join(self.resultdir, S1_NAME)
70 sample2_dir = os.path.join(self.resultdir, S2_NAME)
71 self.failUnless(os.path.isdir(sample1_dir))
72 self.failUnless(os.path.isdir(sample2_dir))
74 for f in S1_FILES + S2_FILES:
77 os.path.join(self.resultdir, f)))
79 def test_make_from_shared_directory(self):
80 """Split multiple datasets stored in a single directory
82 self.skipTest("not implemented yet")
84 results['S1'] = os.path.join(SCOMBINED_NAME, 's1*')
85 results['S2'] = os.path.join(SCOMBINED_NAME, 's2*')
88 suite = defaultTestLoader.loadTestsFromTestCase(TestResultMap)
91 if __name__ == "__main__":
93 logging.basicConfig(level=logging.DEBUG)
94 from unittest import main
95 main(defaultTest='suite')