9beb10239d184cc6021bb5bd08e35c75e2cea978
[htsworkflow.git] / encode_submission / test_encode_find.py
1 #!/usr/bin/env python
2 from datetime import datetime
3 import os
4 import unittest
5
6 import RDF
7
8 import encode_find
9 from htsworkflow.submission.ucsc import submission_view_url
10 from htsworkflow.util.rdfhelp import dump_model, get_model, fromTypedNode
11
12 SOURCE_PATH = os.path.split(os.path.abspath(__file__))[0]
13 print SOURCE_PATH
14
15 class TestEncodeFind(unittest.TestCase):
16     def test_create_status_node_with_uri(self):
17         subURL = submission_view_url('5136')
18         submissionUri = RDF.Uri(subURL)
19         timestamp = '2011-12-19T12:42:53.048956'
20         manualUri = subURL + '/' + timestamp
21         nodeUri = encode_find.create_status_node(submissionUri, timestamp)
22         self.assertEqual(str(nodeUri.uri), manualUri)
23
24     def test_create_status_node_with_str(self):
25         subURL = submission_view_url('5136')
26         timestamp = '2011-12-19T12:42:53.048956'
27         manualUri = subURL + '/' + timestamp
28         nodeUri = encode_find.create_status_node(subURL, timestamp)
29         self.assertEqual(str(nodeUri.uri), manualUri)
30
31     def test_parse_submission_page(self):
32         timestamp = '2011-12-19T12:42:53.048956'
33         subURL = submission_view_url('5136')
34         subNode = encode_find.create_status_node(subURL, timestamp)
35         test_file = os.path.join(SOURCE_PATH, 'testdata', '5136SubDetail.html')
36         from lxml.html import parse
37         tree = parse(test_file)
38         model = get_model()
39         dates = encode_find.get_creation_dates(model, subNode)
40         self.assertEqual(len(dates), 0)
41         encode_find.parse_submission_page(model, tree, subNode)
42         dates = encode_find.get_creation_dates(model, subNode)
43         self.assertEqual(len(dates), 1)
44         object_date = fromTypedNode(dates[0].object)
45         self.assertEqual(object_date, datetime(2011,12,7,15,23,0))
46
47
48 def suite():
49     return unittest.makeSuite(TestEncodeFind, "test")
50
51 if __name__ == "__main__":
52     unittest.main(defaultTest="suite")