Test Narratio selectors and credential lists

This commit is contained in:
2026-09-28 14:54:03 +00:00
parent a28f22c7dd
commit 45f6836bf5
4 changed files with 37 additions and 7 deletions

View File

@@ -18,7 +18,10 @@ verify_baseline="$repository_root/tests/verify-baseline.yml"
representative="$repository_root/tests/representative.yml"
verify_config="$repository_root/tests/verify-config.yml"
ansible_playbook="$workspace_venv/bin/ansible-playbook"
baseline_args=(-e 'narratio_whisperx_transcribe_url=http://127.0.0.1:8000/transcribe')
baseline_args=(
-e 'narratio_whisperx_transcribe_url=http://127.0.0.1:8000/transcribe'
-e '{"narratio_audita_credentials":null,"narratio_audita_overlay":null,"narratio_audita_proposal_profile":null,"narratio_audita_validation_profile":null,"narratio_notarius_credentials":null,"narratio_notarius_config_overlay":null}'
)
cleanup() {
exit_status=$?
@@ -86,19 +89,27 @@ require_clean_recap "$recovery_repeat_log"
representative_log="$test_tmp/representative.log"
"$ansible_playbook" -i "$inventory" "$representative" | tee "$representative_log"
synthetic_notarius_api_key=notarius-representative-synthetic-value
synthetic_audita_api_key=audita-representative-synthetic-value
representative_validation_log="$test_tmp/representative-validation.log"
NARRATIO_TEST_NOTARIUS_API_KEY="$synthetic_notarius_api_key" \
NARRATIO_TEST_AUDITA_API_KEY="$synthetic_audita_api_key" \
"$ansible_playbook" -i "$inventory" "$verify_config" | tee "$representative_validation_log"
! grep -Fq "$synthetic_notarius_api_key" "$representative_log" "$representative_validation_log"
! grep -Fq "$synthetic_audita_api_key" "$representative_log" "$representative_validation_log"
representative_repeat_log="$test_tmp/representative-repeat.log"
"$ansible_playbook" -i "$inventory" "$representative" | tee "$representative_repeat_log"
require_clean_recap "$representative_repeat_log"
empty_overlay_log="$test_tmp/empty-overlay.log"
empty_inputs='{"narratio_audita_credentials":[],"narratio_notarius_credentials":[],"narratio_audita_overlay":"","narratio_audita_proposal_profile":"","narratio_audita_validation_profile":"","narratio_notarius_config_overlay":""}'
empty_expectations='{"narratio_test_audita_credentials":[],"narratio_test_notarius_credentials":[],"narratio_test_audita_overlay":"","narratio_test_audita_proposal_profile":"","narratio_test_audita_validation_profile":"","narratio_test_notarius_config_overlay":""}'
"$ansible_playbook" -i "$inventory" \
-e '{"narratio_notarius_config_overlay": ""}' \
-e "$empty_inputs" \
"$representative" | tee "$empty_overlay_log"
NARRATIO_TEST_NOTARIUS_API_KEY="$synthetic_notarius_api_key" \
"$ansible_playbook" -i "$inventory" \
-e '{"narratio_test_notarius_config_overlay": ""}' \
"$ansible_playbook" -i "$inventory" \
-e "$empty_expectations" \
"$verify_config"
empty_repeat_log="$test_tmp/empty-repeat.log"
"$ansible_playbook" -i "$inventory" -e "$empty_inputs" \
"$representative" | tee "$empty_repeat_log"
require_clean_recap "$empty_repeat_log"

View File

@@ -24,6 +24,12 @@
narratio_seriatim_coalesce_gap: 0.0
narratio_seriatim_report: false
narratio_audita_modules: []
narratio_audita_credentials:
- NARRATIO_TEST_AUDITA_API_KEY
- NARRATIO_TEST_NOTARIUS_API_KEY
narratio_audita_overlay: representative-audita-overlay
narratio_audita_proposal_profile: representative-proposal
narratio_audita_validation_profile: representative-validation
narratio_notarius_credentials:
- NARRATIO_TEST_NOTARIUS_API_KEY
narratio_notarius_config_overlay: representative-overlay

View File

@@ -9,9 +9,10 @@
src: /usr/local/etc/narratio/pipeline.yml
register: narratio_baseline_pipeline
- name: Verify null Notarius fields are omitted
- name: Verify null downstream fields are omitted
ansible.builtin.assert:
that:
- "'audita' not in narratio_pipeline"
- "'notarius' not in narratio_pipeline"
vars:
narratio_pipeline: "{{ narratio_baseline_pipeline.content | b64decode | from_yaml }}"

View File

@@ -24,7 +24,11 @@
- narratio_pipeline.seriatim.coalesce_gap == 0.0
- narratio_pipeline.seriatim.report == false
- narratio_pipeline.audita.modules == []
- narratio_pipeline.notarius.credentials == ['NARRATIO_TEST_NOTARIUS_API_KEY']
- narratio_pipeline.audita.credentials == narratio_expected_audita_credentials
- narratio_pipeline.audita.overlay == narratio_expected_audita_overlay
- narratio_pipeline.audita.proposal_profile == narratio_expected_audita_proposal_profile
- narratio_pipeline.audita.validation_profile == narratio_expected_audita_validation_profile
- narratio_pipeline.notarius.credentials == narratio_expected_notarius_credentials
- narratio_pipeline.notarius.config_overlay == narratio_expected_notarius_config_overlay
- narratio_pipeline.notarius.resume == false
- narratio_pipeline.notarius.chunk_cache == 'auto'
@@ -39,6 +43,13 @@
- "'normalize' not in narratio_pipeline"
vars:
narratio_pipeline: "{{ narratio_managed_pipeline.content | b64decode | from_yaml }}"
narratio_expected_audita_credentials: >-
{{ narratio_test_audita_credentials |
default(['NARRATIO_TEST_AUDITA_API_KEY', 'NARRATIO_TEST_NOTARIUS_API_KEY']) }}
narratio_expected_audita_overlay: "{{ narratio_test_audita_overlay | default('representative-audita-overlay') }}"
narratio_expected_audita_proposal_profile: "{{ narratio_test_audita_proposal_profile | default('representative-proposal') }}"
narratio_expected_audita_validation_profile: "{{ narratio_test_audita_validation_profile | default('representative-validation') }}"
narratio_expected_notarius_credentials: "{{ narratio_test_notarius_credentials | default(['NARRATIO_TEST_NOTARIUS_API_KEY']) }}"
narratio_expected_notarius_config_overlay: "{{ narratio_test_notarius_config_overlay | default('representative-overlay') }}"
- name: Validate the representative pipeline as the Narratio account
@@ -53,4 +64,5 @@
- /usr/local/etc/narratio/pipeline.yml
environment:
NARRATIO_TEST_NOTARIUS_API_KEY: "{{ lookup('ansible.builtin.env', 'NARRATIO_TEST_NOTARIUS_API_KEY') }}"
NARRATIO_TEST_AUDITA_API_KEY: "{{ lookup('ansible.builtin.env', 'NARRATIO_TEST_AUDITA_API_KEY') }}"
changed_when: false