Change unittest2 back into unittest.
[htsworkflow.git] / htsworkflow / util / test / test_url.py
1 from unittest import TestCase
2
3 from htsworkflow.util.url import normalize_url, parse_ssh_url
4
5 class TestURLUtilities(TestCase):
6     def test_normalize_url(self):
7
8         self.assertEqual(normalize_url('caltech.edu'), 
9                          'http://caltech.edu')
10         self.assertEqual(normalize_url('http://caltech.edu'),
11                          'http://caltech.edu')
12         self.assertEqual(normalize_url("foo.com/a/b/c/d/e/f.html"),
13                          'http://foo.com/a/b/c/d/e/f.html')
14         self.assertEqual(normalize_url("foo.com", "https"),
15                          'https://foo.com')
16         self.assertEqual(normalize_url(None),
17                          None)
18
19     def test_parse_ssh_url(self):
20
21         u = parse_ssh_url('me@caltech.edu:/test/path')
22         self.assertEqual(u.user, 'me')
23         self.assertEqual(u.host, 'caltech.edu')
24         self.assertEqual(u.path, '/test/path')
25
26         u = parse_ssh_url('caltech.edu:path@there')
27         self.assertEqual(u.user, None)
28         self.assertEqual(u.host, 'caltech.edu')
29         self.assertEqual(u.path, 'path@there')
30
31         u = parse_ssh_url('caltech.edu:C:/me/@work')
32         self.assertEqual(u.user, None)
33         self.assertEqual(u.host, 'caltech.edu')
34         self.assertEqual(u.path, 'C:/me/@work')
35
36         self.assertRaises(ValueError, parse_ssh_url, 'hello')
37         
38 def suite():
39     from unittest import TestSuite, defaultTestLoader
40     suite = TestSuite()
41     suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestURLUtilities))
42     return suite
43
44 if __name__ == '__main__':
45     from unittest import main
46     main(defaultTest="suite")