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
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__)
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()
--- /dev/null
+"""
+A selection of view objects used in testing.
+"""
+
+VIEW_WITH_FILTER_AND_REGEX = """
+<?xml version="1.0" encoding="UTF-8"?>
+<hudson.model.ListView>
+ <name>%s</name>
+ <filterExecutors>true</filterExecutors>
+ <filterQueue>true</filterQueue>
+ <properties class="hudson.model.View$PropertyList"/>
+ <jobNames>
+ <comparator class="hudson.util.CaseInsensitiveComparator"/>
+ </jobNames>
+ <jobFilters/>
+ <columns>
+ <hudson.views.StatusColumn/>
+ <hudson.views.WeatherColumn/>
+ <hudson.views.JobColumn/>
+ <hudson.views.LastSuccessColumn/>
+ <hudson.views.LastFailureColumn/>
+ <hudson.views.LastDurationColumn/>
+ <hudson.views.BuildButtonColumn/>
+ </columns>
+ <includeRegex>regex</includeRegex>
+ <recurse>false</recurse>
+</hudson.model.ListView>
+""".strip()