239 lines
8.5 KiB
YAML
239 lines
8.5 KiB
YAML
# Test success path Validations API in conjunction with Validation Policy.
|
|
#
|
|
# 1. Purge existing data to ensure test isolation
|
|
# 2. Create a Validation Policy.
|
|
# 3. Verifies that the revision is success.
|
|
# 4. Creates a Validation Policy with two validations, one which requires an
|
|
# an external validation result from Promenade.
|
|
# 5. Register success result for promenade-schema-validation.
|
|
# 6. Validate that the revision is success.
|
|
# 7. Create a Validation Policy with two validations, same as before.
|
|
# 8. Intentionally do not register promenade-schema-validation.
|
|
# 9. Validate that promenade-schema-validation defaults to failure for
|
|
# get and list views.
|
|
# 10. Create a Validation Policy with one validation
|
|
# (deckhand-schema-validation) only.
|
|
# 11. Register extra promenade-schema-validation (not included in VP) as
|
|
# failure.
|
|
# 12. Validate that promenade-schema-validation is ignored for
|
|
# get and list views.
|
|
# 13. Validate that detail view for promenade-schema-validation indicates it
|
|
# is ignored, with detailed message.
|
|
|
|
defaults:
|
|
request_headers:
|
|
content-type: application/x-yaml
|
|
response_headers:
|
|
content-type: application/x-yaml
|
|
verbose: true
|
|
|
|
tests:
|
|
- name: purge
|
|
desc: Begin testing from known state.
|
|
DELETE: /api/v1.0/revisions
|
|
status: 204
|
|
response_headers: null
|
|
|
|
- name: create_validation_policy
|
|
desc: Create an example validation policy.
|
|
PUT: /api/v1.0/buckets/mop/documents
|
|
status: 200
|
|
data: |-
|
|
---
|
|
schema: deckhand/ValidationPolicy/v1
|
|
metadata:
|
|
schema: metadata/Control/v1
|
|
name: site-deploy-ready
|
|
layeringDefinition:
|
|
abstract: true
|
|
data:
|
|
validations:
|
|
- name: deckhand-schema-validation
|
|
...
|
|
|
|
- name: verify_revision_is_success
|
|
desc: |
|
|
Validate that the Validation Policy itself passed
|
|
deckhand-schema-validation.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_validation_policy'].$RESPONSE['$.[0].status.revision']/validations/deckhand-schema-validation
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].count: 1
|
|
$.[0].results[0].id: 0
|
|
$.[0].results[0].status: success
|
|
|
|
- name: create_vp_two_validations
|
|
desc: Add a validation policy with two validations.
|
|
PUT: /api/v1.0/buckets/mop/documents
|
|
status: 200
|
|
data: |-
|
|
---
|
|
schema: deckhand/ValidationPolicy/v1
|
|
metadata:
|
|
schema: metadata/Control/v1
|
|
name: site-deploy-ready
|
|
layeringDefinition:
|
|
abstract: true
|
|
data:
|
|
validations:
|
|
- name: deckhand-schema-validation
|
|
- name: promenade-schema-validation
|
|
...
|
|
|
|
- name: register_promenade_validation_as_success
|
|
desc: Externally register the result for promenade-schema-validation.
|
|
POST: /api/v1.0/revisions/$HISTORY['create_vp_two_validations'].$RESPONSE['$.[0].status.revision']/validations/promenade-schema-validation
|
|
status: 201
|
|
data: |-
|
|
---
|
|
status: success
|
|
errors: []
|
|
validator:
|
|
name: promenade
|
|
version: 1.1.2
|
|
...
|
|
|
|
- name: verify_revision_with_two_validations_list_view_is_success
|
|
desc: Verify that both validations are marked as success.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_vp_two_validations'].$RESPONSE['$.[0].status.revision']/validations
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].count: 2
|
|
# Sort the results by name alphabetically for reliable assertions.
|
|
$.[0].results[/name][0].name: deckhand-schema-validation
|
|
$.[0].results[/name][0].status: success
|
|
$.[0].results[/name][1].name: promenade-schema-validation
|
|
$.[0].results[/name][1].status: success
|
|
|
|
- name: create_vp_two_validations_missing
|
|
desc: Add a validation policy with two validations.
|
|
PUT: /api/v1.0/buckets/mop/documents
|
|
status: 200
|
|
data: |-
|
|
---
|
|
schema: deckhand/ValidationPolicy/v1
|
|
metadata:
|
|
schema: metadata/Control/v1
|
|
name: site-deploy-ready
|
|
layeringDefinition:
|
|
abstract: true
|
|
data:
|
|
validations:
|
|
- name: deckhand-schema-validation
|
|
- name: promenade-schema-validation
|
|
...
|
|
|
|
# Do not register promenade-schema-validation.
|
|
|
|
- name: verify_promenade_schema_validation_is_failure
|
|
desc: |
|
|
Verify that promenade-schema-validation status is failure because
|
|
it should default to failure as it was never externally registered.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_vp_two_validations_missing'].$RESPONSE['$.[0].status.revision']/validations/promenade-schema-validation
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].count: 1
|
|
$.[0].results[0].id: 0
|
|
$.[0].results[0].status: failure
|
|
|
|
- name: verify_revision_with_missing_validation_list_view_is_failure
|
|
desc: Verify promenade-schema-validation is failure.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_vp_two_validations_missing'].$RESPONSE['$.[0].status.revision']/validations
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].count: 2
|
|
# Sort the results by name alphabetically for reliable assertions.
|
|
$.[0].results[/name][0].name: deckhand-schema-validation
|
|
$.[0].results[/name][0].status: success
|
|
$.[0].results[/name][1].name: promenade-schema-validation
|
|
$.[0].results[/name][1].status: failure
|
|
|
|
- name: create_vp_one_validation_extra
|
|
desc: |
|
|
Add a validation policy with only one validation but later on register
|
|
an extra validation.
|
|
PUT: /api/v1.0/buckets/mop/documents
|
|
status: 200
|
|
data: |-
|
|
---
|
|
schema: deckhand/ValidationPolicy/v1
|
|
metadata:
|
|
schema: metadata/Control/v1
|
|
name: site-deploy-ready
|
|
layeringDefinition:
|
|
abstract: true
|
|
data:
|
|
validations:
|
|
- name: deckhand-schema-validation
|
|
...
|
|
|
|
- name: register_extra_promenade_validation_as_failure
|
|
desc: |
|
|
Externally register the result for extra promenade-schema-validation as
|
|
failure.
|
|
POST: /api/v1.0/revisions/$HISTORY['create_vp_one_validation_extra'].$RESPONSE['$.[0].status.revision']/validations/promenade-schema-validation
|
|
status: 201
|
|
data: |-
|
|
---
|
|
status: failure
|
|
errors:
|
|
- documents:
|
|
- schema: promenade/Node/v1
|
|
name: node-document-name
|
|
- schema: promenade/Masters/v1
|
|
name: kubernetes-masters
|
|
message: Node has master role, but not included in cluster masters list.
|
|
validator:
|
|
name: promenade
|
|
version: 1.1.2
|
|
...
|
|
|
|
- name: verify_promenade_schema_validation_is_ignored
|
|
desc: |
|
|
Verify that promenade-schema-validation is ignored.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_vp_one_validation_extra'].$RESPONSE['$.[0].status.revision']/validations/promenade-schema-validation
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].count: 1
|
|
$.[0].results[0].id: 0
|
|
$.[0].results[0].status: ignored [failure]
|
|
|
|
- name: verify_revision_with_extra_validation_list_view_is_ignored
|
|
desc: |
|
|
Verify that the list view shows that promenade-schema-validation is
|
|
ignored.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_vp_one_validation_extra'].$RESPONSE['$.[0].status.revision']/validations
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].count: 2
|
|
# Sort the results by name alphabetically for reliable assertions.
|
|
$.[0].results[/name][0].name: deckhand-schema-validation
|
|
$.[0].results[/name][0].status: success
|
|
$.[0].results[/name][1].name: promenade-schema-validation
|
|
$.[0].results[/name][1].status: ignored [failure]
|
|
|
|
- name: verify_revision_with_extra_validation_detail_view_is_ignored
|
|
desc: |
|
|
Verify that details view for promenade-schema-validation indicates it
|
|
has been ignored, with a detailed message.
|
|
GET: /api/v1.0/revisions/$HISTORY['create_vp_one_validation_extra'].$RESPONSE['$.[0].status.revision']/validations/promenade-schema-validation/entries/0
|
|
status: 200
|
|
response_multidoc_jsonpaths:
|
|
$.`len`: 1
|
|
$.[0].name: promenade-schema-validation
|
|
$.[0].status: ignored [failure]
|
|
$.[0].createdAt: null
|
|
$.[0].expiresAfter: null
|
|
$.[0].errors.`len`: 2
|
|
$.[0].errors[/message][1].message: >-
|
|
The result for this validation was externally registered but has been
|
|
ignored because it is not found in the validations for
|
|
ValidationPolicy [deckhand/ValidationPolicy/v1, None]
|
|
site-deploy-ready: deckhand-schema-validation.
|