Tests for invalid parameter files
-Tests warnings for missing and empty parameter files. -Tests warnings when rest_parameter stanza lists parameter file but no parameters. Change-Id: Ic2c740a34964b1e23560102cc4e5c7fe0be63d50
This commit is contained in:
parent
9a7fcb9258
commit
57faf6f9fa
|
@ -203,11 +203,11 @@ class RestParametersDirective(Table):
|
|||
if fpath in YAML_CACHE:
|
||||
return YAML_CACHE[fpath]
|
||||
|
||||
lookup = {}
|
||||
# self.app.info("Fpath: %s" % fpath)
|
||||
try:
|
||||
with open(fpath, 'r') as stream:
|
||||
lookup = ordered_load(stream)
|
||||
self._check_yaml_sorting(fpath, lookup)
|
||||
except IOError:
|
||||
self.env.warn(
|
||||
self.env.docname,
|
||||
|
@ -217,6 +217,14 @@ class RestParametersDirective(Table):
|
|||
self.app.warn(exc)
|
||||
raise
|
||||
|
||||
if lookup:
|
||||
self._check_yaml_sorting(fpath, lookup)
|
||||
else:
|
||||
self.env.warn(
|
||||
self.env.docname,
|
||||
"Parameters file is empty %s" % fpath)
|
||||
return
|
||||
|
||||
YAML_CACHE[fpath] = lookup
|
||||
return lookup
|
||||
|
||||
|
@ -272,7 +280,10 @@ class RestParametersDirective(Table):
|
|||
This allows use to reference an external file for the actual
|
||||
parameter definitions.
|
||||
"""
|
||||
|
||||
lookup = self._load_param_file(fpath)
|
||||
if not lookup:
|
||||
return
|
||||
|
||||
content = "\n".join(self.content)
|
||||
parsed = yaml.load(content)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
# Empty parameter file
|
|
@ -14,3 +14,24 @@ I am text, hear me roar!
|
|||
- name: lookup_key_name
|
||||
- name: name_1
|
||||
- invalid_name
|
||||
|
||||
|
||||
No Parameters Specified
|
||||
-----------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
|
||||
|
||||
Empty File and Parameters Specified
|
||||
-----------------------------------
|
||||
|
||||
.. rest_parameters:: empty_parameters_file.yaml
|
||||
|
||||
- name: name
|
||||
|
||||
Nonexistent Parameter File
|
||||
--------------------------
|
||||
|
||||
.. rest_parameters:: no_parameters.yaml
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ class TestWarnings(base.TestCase):
|
|||
self.warning)
|
||||
|
||||
def test_missing_lookup_name(self):
|
||||
"""Warning when missing lookup key in parameter file."""
|
||||
"""Warning when missing a lookup key in parameter file."""
|
||||
self.assertIn(
|
||||
("WARNING: No field definition for ``lookup_key_name`` found in "),
|
||||
self.warning)
|
||||
|
@ -73,3 +73,23 @@ class TestWarnings(base.TestCase):
|
|||
("WARNING: Invalid parameter definition ``invalid_name``. "
|
||||
+ "Expected format: ``name: reference``. "),
|
||||
self.warning)
|
||||
|
||||
def test_empty_parameter_file(self):
|
||||
"""Warning when parameter file exists but is empty."""
|
||||
self.assertIn(
|
||||
("WARNING: Parameters file is empty"),
|
||||
self.warning)
|
||||
|
||||
def test_no_parameters_set(self):
|
||||
"""Error when parameters are not set in rest_parameters stanza."""
|
||||
self.assertIn(
|
||||
("ERROR: No parameters defined\n\n.."
|
||||
+ " rest_parameters:: parameters.yaml\n"),
|
||||
self.warning)
|
||||
|
||||
def test_parameter_file_not_exist(self):
|
||||
"""Error when parameter file does not exist"""
|
||||
self.assertIn(
|
||||
("ERROR: No parameters defined\n\n.."
|
||||
+ " rest_parameters:: no_parameters.yaml\n"),
|
||||
self.warning)
|
||||
|
|
Loading…
Reference in New Issue