2
System tests for `jenkinsapi.jenkins` module.
7
from jenkinsapi.view import View
8
from jenkinsapi.views import Views
9
from jenkinsapi.api import get_view_from_url
10
from jenkinsapi_tests.systests.base import BaseSystemTest
11
from jenkinsapi_tests.test_utils.random_strings import random_string
13
log = logging.getLogger(__name__)
16
class TestViews(BaseSystemTest):
17
def test_make_views(self):
19
view_name = random_string()
20
self.assertNotIn(view_name, self.jenkins.views)
21
v = self.jenkins.views.create(view_name)
22
self.assertIn(view_name, self.jenkins.views)
23
self.assertIsInstance(v, View)
25
# Can we use the API convenience methods
26
v2 = get_view_from_url(v.baseurl)
27
self.assertEquals(v, v2)
29
def test_create_and_delete_views(self):
31
view1_name = random_string()
32
new_view = self.jenkins.views.create(view1_name)
33
self.assertIsInstance(new_view, View)
34
self.assertIn(view1_name, self.jenkins.views)
35
del self.jenkins.views[view1_name]
36
self.assertNotIn(view1_name, self.jenkins.views)
38
def test_create_and_delete_views_by_url(self):
40
view1_name = random_string()
41
new_view = self.jenkins.views.create(view1_name)
42
self.assertIsInstance(new_view, View)
43
self.assertIn(view1_name, self.jenkins.views)
44
view_url = new_view.baseurl
45
view_by_url = self.jenkins.get_view_by_url(view_url)
46
self.assertIsInstance(view_by_url, View)
47
self.jenkins.delete_view_by_url(view_url)
48
self.assertNotIn(view1_name, self.jenkins.views)
50
def test_delete_view_which_does_not_exist(self):
52
view1_name = random_string()
53
new_view = self.jenkins.views.create(view1_name)
54
self.assertIn(view1_name, self.jenkins.views)
55
del self.jenkins.views[view1_name]
56
self.assertNotIn(view1_name, self.jenkins.views)
58
def test_make_nested_views(self):
59
job = self._create_job()
60
top_view_name = random_string()
61
sub1_view_name = random_string()
62
sub2_view_name = random_string()
64
self.assertNotIn(top_view_name, self.jenkins.views)
65
tv = self.jenkins.views.create(top_view_name, Views.NESTED_VIEW)
66
self.assertIn(top_view_name, self.jenkins.views)
67
self.assertIsInstance(tv, View)
70
sv1 = tv.views.create(sub1_view_name)
71
self.assertIn(sub1_view_name, tv.views)
72
self.assertIsInstance(sv1, View)
74
# Sub view with job in it
75
tv.views[sub2_view_name] = job.name
76
self.assertIn(sub2_view_name, tv.views)
77
sv2 = tv.views[sub2_view_name]
78
self.assertIsInstance(sv2, View)
79
self.assertTrue(job.name in sv2)
81
# Can we use the API convenience methods
82
v = get_view_from_url(sv2.baseurl)
83
self.assertEquals(v, sv2)
85
if __name__ == '__main__':