Merge "Give an explicit error message when unsupported view type used"

This commit is contained in:
Jenkins 2017-10-10 07:53:02 +00:00 committed by Gerrit Code Review
commit 229134923d
3 changed files with 25 additions and 0 deletions

View File

@ -123,6 +123,12 @@ class XmlViewGenerator(object):
self._gen_xml(xml, data)
view = XmlJob(xml, data['name'])
return view
names = [
ep.name for ep in pkg_resources.iter_entry_points(
group='jenkins_jobs.views')]
raise errors.JenkinsJobsException(
'Unrecognized view type: {} (supported types are: {})'.format(
kind, ', '.join(names)))
def _gen_xml(self, xml, data):
for module in self.registry.modules:

View File

@ -0,0 +1,3 @@
- view:
name: invalid-view-type
view-type: invalid

View File

@ -42,6 +42,22 @@ class TestXmlJobGeneratorExceptions(base.BaseTestCase):
xml_generator.generateXML, job_data)
self.assertIn("Unrecognized project type:", str(e))
def test_invalid_view(self):
self.conf_filename = None
config = self._get_config()
yp = parser.YamlParser(config)
yp.parse(os.path.join(self.fixtures_path, "invalid_view.yaml"))
reg = registry.ModuleRegistry(config)
_, view_data = yp.expandYaml(reg)
# Generate the XML tree
xml_generator = xml_config.XmlViewGenerator(reg)
e = self.assertRaises(errors.JenkinsJobsException,
xml_generator.generateXML, view_data)
self.assertIn("Unrecognized view type:", str(e))
def test_incorrect_template_params(self):
self.conf_filename = None
config = self._get_config()