test(validate): Validate Armada's own examples

This is to validate Armada's own chart/chart group/manifest
documents under examples using internal schema validation
to verify that the examples are up to date with latest Armada
code changes.

Change-Id: I4379eba727ee26acc501d0a81ae7cd828a0e4f51
This commit is contained in:
Felipe Monteiro 2018-03-18 23:40:29 +00:00 committed by Marshall Margenau
parent 79cfa7e1cf
commit 6339efcfd8
2 changed files with 33 additions and 1 deletions

View File

@ -75,6 +75,39 @@ class BaseValidateTest(base.ArmadaTestCase):
return "Invalid document [{}] {}: {}.".format(document, name, message)
class ValidateOwnExamplesTestCase(BaseValidateTest):
"""Validates that each of the relevant example documents under
``armada/examples`` passes internal Armada schema validation.
"""
def test_own_document_examples(self):
examples_path = os.path.join(os.getcwd(), 'examples')
example_files = [
os.path.join(examples_path, f) for f in os.listdir(examples_path)
if os.path.isfile(os.path.join(examples_path, f))
]
validated_manifests = []
for example_file in example_files:
with open(example_file) as f:
documents = yaml.safe_load_all(f.read())
# If the example file doesn't have a document with
# armada/Manifest/v1 then skip validating it as the example could
# merely be an override.
has_manifest = any(
x['schema'] == 'armada/Manifest/v1' for x in documents)
if not has_manifest:
continue
validated_manifests.append(example_file)
valid, _ = validate.validate_armada_documents(list(documents))
self.assertTrue(valid)
self.assertTrue(validated_manifests)
class ValidateTestCase(BaseValidateTest):
def test_validate_load_schemas(self):

View File

@ -33,7 +33,6 @@ data:
type: tar
location: http://localhost:8879/charts/mariadb-0.1.0.tgz
subpath: mariadb
reference: null
dependencies:
- helm-toolkit
---