From 99e16c87ce7e3b4dd96bb64bc1fcc5a69708ca44 Mon Sep 17 00:00:00 2001 From: Dirk Thomas Date: Fri, 21 Nov 2014 12:36:12 -0800 Subject: [PATCH] add View.get_config() and tests covering View.get_config() as well as View.update_config() --- jenkinsapi/view.py | 8 +++++++ jenkinsapi_tests/systests/test_views.py | 13 +++++++++++ jenkinsapi_tests/systests/view_configs.py | 28 +++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 jenkinsapi_tests/systests/view_configs.py diff --git a/jenkinsapi/view.py b/jenkinsapi/view.py index 69ecbf0..c262804 100644 --- a/jenkinsapi/view.py +++ b/jenkinsapi/view.py @@ -170,6 +170,14 @@ class View(JenkinsBase): def get_config_xml_url(self): return '%s/config.xml' % self.baseurl + def get_config(self): + """ + Return the config.xml from the view + """ + url = self.get_config_xml_url() + response = self.get_jenkins_obj().requester.get_and_confirm_status(url) + return response.text + def update_config(self, config): """ Update the config.xml to the view diff --git a/jenkinsapi_tests/systests/test_views.py b/jenkinsapi_tests/systests/test_views.py index 6d91c6e..76e948c 100644 --- a/jenkinsapi_tests/systests/test_views.py +++ b/jenkinsapi_tests/systests/test_views.py @@ -12,6 +12,7 @@ from jenkinsapi.view import View from jenkinsapi.views import Views from jenkinsapi.api import get_view_from_url from jenkinsapi_tests.systests.base import BaseSystemTest +from jenkinsapi_tests.systests.view_configs import VIEW_WITH_FILTER_AND_REGEX from jenkinsapi_tests.test_utils.random_strings import random_string log = logging.getLogger(__name__) @@ -59,6 +60,18 @@ class TestViews(BaseSystemTest): del self.jenkins.views[view1_name] self.assertNotIn(view1_name, self.jenkins.views) + def test_update_view_config(self): + view_name = random_string() + new_view = self.jenkins.views.create(view_name) + self.assertIsInstance(new_view, View) + self.assertIn(view_name, self.jenkins.views) + config = self.jenkins.views[view_name].get_config().strip() + new_view_config = VIEW_WITH_FILTER_AND_REGEX % view_name + self.assertNotEquals(config, new_view_config) + self.jenkins.views[view_name].update_config(new_view_config) + config = self.jenkins.views[view_name].get_config().strip() + self.assertEquals(config, new_view_config) + def test_make_nested_views(self): job = self._create_job() top_view_name = random_string() diff --git a/jenkinsapi_tests/systests/view_configs.py b/jenkinsapi_tests/systests/view_configs.py new file mode 100644 index 0000000..66d2aab --- /dev/null +++ b/jenkinsapi_tests/systests/view_configs.py @@ -0,0 +1,28 @@ +""" +A selection of view objects used in testing. +""" + +VIEW_WITH_FILTER_AND_REGEX = """ + + + %s + true + true + + + + + + + + + + + + + + + regex + false + +""".strip() -- 2.34.1