~ubuntu-branches/ubuntu/trusty/python-jenkinsapi/trusty-proposed

« back to all changes in this revision

Viewing changes to jenkinsapi_tests/systests/test_views.py

  • Committer: Package Import Robot
  • Author(s): Al Stone
  • Date: 2014-01-06 18:12:26 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20140106181226-j4n5l4idgxghlvwg
Tags: 0.2.16-1
* Update to latest upstream.
* Closes: #725589 -- FTBS due to unexpected upstream changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
'''
 
2
System tests for `jenkinsapi.jenkins` module.
 
3
'''
 
4
import logging
 
5
import unittest
 
6
 
 
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
 
12
 
 
13
log = logging.getLogger(__name__)
 
14
 
 
15
 
 
16
class TestViews(BaseSystemTest):
 
17
    def test_make_views(self):
 
18
        self._create_job()
 
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)
 
24
 
 
25
        # Can we use the API convenience methods
 
26
        v2 = get_view_from_url(v.baseurl)
 
27
        self.assertEquals(v, v2)
 
28
 
 
29
    def test_create_and_delete_views(self):
 
30
        self._create_job()
 
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)
 
37
 
 
38
    def test_create_and_delete_views_by_url(self):
 
39
        self._create_job()
 
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)
 
49
 
 
50
    def test_delete_view_which_does_not_exist(self):
 
51
        self._create_job()
 
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)
 
57
 
 
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()
 
63
 
 
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)
 
68
 
 
69
        # Empty sub view
 
70
        sv1 = tv.views.create(sub1_view_name)
 
71
        self.assertIn(sub1_view_name, tv.views)
 
72
        self.assertIsInstance(sv1, View)
 
73
 
 
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)
 
80
 
 
81
        # Can we use the API convenience methods
 
82
        v = get_view_from_url(sv2.baseurl)
 
83
        self.assertEquals(v, sv2)
 
84
 
 
85
if __name__ == '__main__':
 
86
    logging.basicConfig()
 
87
    unittest.main()