remove unused import
authorsalimfadhley <sal@stodge.org>
Mon, 17 Jun 2013 23:05:48 +0000 (00:05 +0100)
committersalimfadhley <sal@stodge.org>
Mon, 17 Jun 2013 23:05:48 +0000 (00:05 +0100)
jenkinsapi_tests/unittests/test_views.py [new file with mode: 0644]

diff --git a/jenkinsapi_tests/unittests/test_views.py b/jenkinsapi_tests/unittests/test_views.py
new file mode 100644 (file)
index 0000000..7681bb5
--- /dev/null
@@ -0,0 +1,74 @@
+import mock
+import unittest
+from jenkinsapi.view import View
+from jenkinsapi.jenkins import Jenkins
+from jenkinsapi.jenkinsbase import JenkinsBase
+from jenkinsapi.utils.requester import Requester
+
+class TestDataMissing(Exception): pass
+
+class TestViews(unittest.TestCase):
+    @mock.patch.object(Jenkins, '_poll')
+    @mock.patch.object(JenkinsBase, '_poll')
+    def test_create_view(self, _poll, _base_poll):
+        mock_requester = Requester(username='foouser', password='foopassword')
+        mock_requester.get_url = mock.MagicMock(return_value='<div/>')
+        mock_requester.post_url = mock.MagicMock(return_value='')
+        _poll.return_value = {'views': [
+                        {'name': 'All',
+                         'url': 'http://localhost:8080/views/All'},
+                        {'name': 'NewView',
+                         'url': 'http://localhost:8080/views/NewView'},
+                        ]}
+        _base_poll.return_value = _poll.return_value
+        J = Jenkins('http://localhost:8080/',
+                    username='foouser', password='foopassword',
+                    requester=mock_requester)
+
+        new_view = J.views().create(str_view_name='NewView')
+        self.assertTrue(isinstance(new_view, View))
+        self.assertEquals(new_view.baseurl,
+                'http://localhost:8080/views/NewView')
+
+    def test_create_existing_view(self):
+        """
+        Assert that attempting to create a view which
+        already exists simply returns the same view.
+        """
+        def mockGetData(JJ, url):
+            DATA = {}
+            DATA['http://localhost:8080/api/python/'] = \
+                {'views':[dict(name='NewView', url='http://xxxxx/yyyy')]}
+            DATA['http://xxxxx/yyyy/api/python/'] = \
+                {}
+
+            try:
+                result = DATA[url]
+
+                return result
+            except KeyError:
+                raise TestDataMissing(url)
+
+        with mock.patch.object(JenkinsBase, 'get_data', mockGetData):
+
+            J = Jenkins('http://localhost:8080',
+                    username='foouser',
+                    password='foopassword')
+
+            new_view = J.views().create(str_view_name='NewView')
+
+            self.assertIsInstance(new_view, View)
+
+    # @mock.patch.object(Jenkins, '_poll')
+    # def test_delete_inexisting_view(self, _poll):
+    #     mock_requester = Requester(username='foouser', password='foopassword')
+    #     mock_requester.get_url = mock.MagicMock(return_value='<div/>')
+    #     J = Jenkins('http://localhost:8080/',
+    #                 username='foouser', password='foopassword',
+    #                 requester=mock_requester)
+    #     delete_result = J.delete_view(str_view_name='NewView')
+    #     self.assertFalse(delete_result)
+
+if __name__ == '__main__':
+    unittest.main()
+