Add function to list the names for submissions from the RDF model.
[htsworkflow.git] / htsworkflow / submission / test / test_submission.py
1 import os
2 from StringIO import StringIO
3 import shutil
4 import tempfile
5 from unittest2 import TestCase, TestSuite, defaultTestLoader
6
7 from htsworkflow.submission import daf, results
8 from htsworkflow.util.rdfhelp import \
9      dafTermOntology, \
10      fromTypedNode, \
11      load_string_into_model, \
12      rdfNS, \
13      submissionLog, \
14      submissionOntology, \
15      get_model, \
16      get_serializer
17 from htsworkflow.submission.submission import list_submissions
18 import RDF
19
20 class TestSubmissionModule(TestCase):
21     def test_empty_list_submission(self):
22         model = get_model()
23         self.assertEqual(len(list(list_submissions(model))), 0)
24
25     def test_one_submission(self):
26         model = get_model()
27         load_string_into_model(model, "turtle",
28             """
29             @prefix subns: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#> .
30             @prefix test: <http://jumpgate.caltech.edu/wiki/SubmissionsLog/test#> .
31
32             <http://jumpgate.caltech.edu/wiki/SubmissionsLog/test#>
33                subns:has_submission test:lib1 ;
34                subns:has_submission test:lib2.
35             """)
36         submissions = list(list_submissions(model))
37         self.assertEqual(len(submissions), 1)
38         self.assertEqual(submissions[0], "test")
39
40     def test_two_submission(self):
41         model = get_model()
42         load_string_into_model(model, "turtle",
43             """
44             @prefix subns: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#> .
45             @prefix test: <http://jumpgate.caltech.edu/wiki/SubmissionsLog/test#> .
46
47             <http://jumpgate.caltech.edu/wiki/SubmissionsLog/test1#>
48                subns:has_submission test:lib1 .
49             <http://jumpgate.caltech.edu/wiki/SubmissionsLog/test2#>
50                subns:has_submission test:lib2 .
51             """)
52         submissions = list(list_submissions(model))
53         self.assertEqual(len(submissions), 2)
54         truth = set(["test1", "test2"])
55         testset = set()
56         for name in submissions:
57             testset.add(name)
58         self.assertEqual(testset, truth)
59
60 def suite():
61     suite = TestSuite()
62     suite.addTests(
63         defaultTestLoader.loadTestsFromTestCase(TestSubmissionModule))
64     return suite
65
66 if __name__ == "__main__":
67     from unittest2 import main
68     main(defaultTest='suite')