1 from __future__ import absolute_import, print_function
3 from django.test import TestCase
5 from ..models import FileType, find_file_type_metadata_from_filename
7 class TestFileType(TestCase):
8 def test_file_type_unicode(self):
9 file_type_objects = FileType.objects
11 file_type_object = file_type_objects.get(name=name)
12 self.assertEqual(u"QSEQ tarfile",
13 unicode(file_type_object))
15 def test_find_file_type(self):
16 file_type_objects = FileType.objects
17 cases = [('woldlab_090921_HWUSI-EAS627_0009_42FC3AAXX_l7_r1.tar.bz2',
18 'QSEQ tarfile', 7, 1),
19 ('woldlab_091005_HWUSI-EAS627_0010_42JT2AAXX_1.srf',
21 ('s_1_eland_extended.txt.bz2','ELAND Extended', 1, None),
22 ('s_7_eland_multi.txt.bz2', 'ELAND Multi', 7, None),
23 ('s_3_eland_result.txt.bz2','ELAND Result', 3, None),
24 ('s_1_export.txt.bz2','ELAND Export', 1, None),
25 ('s_1_percent_call.png', 'IVC Percent Call', 1, None),
26 ('s_2_percent_base.png', 'IVC Percent Base', 2, None),
27 ('s_3_percent_all.png', 'IVC Percent All', 3, None),
28 ('s_4_call.png', 'IVC Call', 4, None),
29 ('s_5_all.png', 'IVC All', 5, None),
30 ('Summary.htm', 'Summary.htm', None, None),
31 ('run_42JT2AAXX_2009-10-07.xml', 'run_xml', None, None),
33 for filename, typename, lane, end in cases:
34 ft = find_file_type_metadata_from_filename(filename)
35 self.assertEqual(ft['file_type'],
36 file_type_objects.get(name=typename))
37 self.assertEqual(ft.get('lane', None), lane)
38 self.assertEqual(ft.get('end', None), end)
40 def test_assign_file_type_complex_path(self):
41 file_type_objects = FileType.objects
42 cases = [('/a/b/c/woldlab_090921_HWUSI-EAS627_0009_42FC3AAXX_l7_r1.tar.bz2',
43 'QSEQ tarfile', 7, 1),
44 ('foo/woldlab_091005_HWUSI-EAS627_0010_42JT2AAXX_1.srf',
46 ('../s_1_eland_extended.txt.bz2','ELAND Extended', 1, None),
47 ('/bleem/s_7_eland_multi.txt.bz2', 'ELAND Multi', 7, None),
48 ('/qwer/s_3_eland_result.txt.bz2','ELAND Result', 3, None),
49 ('/ty///1/s_1_export.txt.bz2','ELAND Export', 1, None),
50 ('/help/s_1_percent_call.png', 'IVC Percent Call', 1, None),
51 ('/bored/s_2_percent_base.png', 'IVC Percent Base', 2, None),
52 ('/example1/s_3_percent_all.png', 'IVC Percent All', 3, None),
53 ('amonkey/s_4_call.png', 'IVC Call', 4, None),
54 ('fishie/s_5_all.png', 'IVC All', 5, None),
55 ('/random/Summary.htm', 'Summary.htm', None, None),
56 ('/notrandom/run_42JT2AAXX_2009-10-07.xml', 'run_xml', None, None),
58 for filename, typename, lane, end in cases:
59 result = find_file_type_metadata_from_filename(filename)
60 self.assertEqual(result['file_type'],
61 file_type_objects.get(name=typename))
62 self.assertEqual(result.get('lane',None), lane)
63 self.assertEqual(result.get('end', None), end)
66 from unittest import TestSuite, defaultTestLoader
68 suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestFileType))
71 if __name__ == "__main__":
72 from unittest import main
73 main(defaultTest="suite")