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:
|
if fpath in YAML_CACHE:
|
||||||
return YAML_CACHE[fpath]
|
return YAML_CACHE[fpath]
|
||||||
|
|
||||||
|
lookup = {}
|
||||||
# self.app.info("Fpath: %s" % fpath)
|
# self.app.info("Fpath: %s" % fpath)
|
||||||
try:
|
try:
|
||||||
with open(fpath, 'r') as stream:
|
with open(fpath, 'r') as stream:
|
||||||
lookup = ordered_load(stream)
|
lookup = ordered_load(stream)
|
||||||
self._check_yaml_sorting(fpath, lookup)
|
|
||||||
except IOError:
|
except IOError:
|
||||||
self.env.warn(
|
self.env.warn(
|
||||||
self.env.docname,
|
self.env.docname,
|
||||||
|
@ -217,6 +217,14 @@ class RestParametersDirective(Table):
|
||||||
self.app.warn(exc)
|
self.app.warn(exc)
|
||||||
raise
|
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
|
YAML_CACHE[fpath] = lookup
|
||||||
return lookup
|
return lookup
|
||||||
|
|
||||||
|
@ -272,7 +280,10 @@ class RestParametersDirective(Table):
|
||||||
This allows use to reference an external file for the actual
|
This allows use to reference an external file for the actual
|
||||||
parameter definitions.
|
parameter definitions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
lookup = self._load_param_file(fpath)
|
lookup = self._load_param_file(fpath)
|
||||||
|
if not lookup:
|
||||||
|
return
|
||||||
|
|
||||||
content = "\n".join(self.content)
|
content = "\n".join(self.content)
|
||||||
parsed = yaml.load(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: lookup_key_name
|
||||||
- name: name_1
|
- name: name_1
|
||||||
- invalid_name
|
- 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)
|
self.warning)
|
||||||
|
|
||||||
def test_missing_lookup_name(self):
|
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(
|
self.assertIn(
|
||||||
("WARNING: No field definition for ``lookup_key_name`` found in "),
|
("WARNING: No field definition for ``lookup_key_name`` found in "),
|
||||||
self.warning)
|
self.warning)
|
||||||
|
@ -73,3 +73,23 @@ class TestWarnings(base.TestCase):
|
||||||
("WARNING: Invalid parameter definition ``invalid_name``. "
|
("WARNING: Invalid parameter definition ``invalid_name``. "
|
||||||
+ "Expected format: ``name: reference``. "),
|
+ "Expected format: ``name: reference``. "),
|
||||||
self.warning)
|
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