Wifi 14790 (#1064)

* Add multiple master configurations in schema validation tests

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update schema_validation script for proper visualization of discrepancies

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* update test_state_pretty_through_github testcase for better reporting

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add Schema Validation tests in Regression Suite

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add schema_validation_tests marker to default marker in regression workflow

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add ow_regression_lf marker to schema_validation_tests

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add --commit-id argument to additional_args in regression workflow

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add commit-id argument to additional_args in regression workflow

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add additional_arguments in vars

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update regression workflow to take additional_args through github events

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update regression workflow to take additional_args through github events for schema_validation tests

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

---------

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
Co-authored-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
This commit is contained in:
bhargavi-ct
2025-09-16 11:53:43 +05:30
committed by GitHub
parent e61361f42b
commit b70f2cc7d1
2 changed files with 426 additions and 21 deletions

View File

@@ -30,7 +30,7 @@ on:
description: "revision of firmware to flash on AP, <branch>-<commit>" description: "revision of firmware to flash on AP, <branch>-<commit>"
marker_expressions: marker_expressions:
required: true required: true
default: "dfs_tests,multi_psk_tests,rate_limiting_tests,rate_limiting_with_radius_tests,dynamic_vlan_tests,multi_vlan_tests,strict_forwarding_tests,advanced_captive_portal_tests,firmware_upgrade_downgrade,asb_tests" default: "dfs_tests,multi_psk_tests,rate_limiting_tests,rate_limiting_with_radius_tests,dynamic_vlan_tests,multi_vlan_tests,strict_forwarding_tests,advanced_captive_portal_tests,firmware_upgrade_downgrade,asb_tests,schema_validation_tests"
description: "Marker expressions to select tests to execute" description: "Marker expressions to select tests to execute"
additional_args: additional_args:
default: "" default: ""
@@ -72,7 +72,7 @@ jobs:
echo "ap_version=$(echo ${{ github.event.inputs.ap_version || 'next-latest' }})" >> $GITHUB_OUTPUT echo "ap_version=$(echo ${{ github.event.inputs.ap_version || 'next-latest' }})" >> $GITHUB_OUTPUT
echo "existing_controller=$(echo ${{ github.event.inputs.existing_controller || 'qa01' }})" >> $GITHUB_OUTPUT echo "existing_controller=$(echo ${{ github.event.inputs.existing_controller || 'qa01' }})" >> $GITHUB_OUTPUT
MARKER_EXPRESSIONS="${{ github.event.inputs.marker_expressions || 'dfs_tests,multi_psk_tests,rate_limiting_tests,rate_limiting_with_radius_tests,dynamic_vlan_tests,multi_vlan_tests,strict_forwarding_tests,advanced_captive_portal_tests,firmware_upgrade_downgrade,asb_tests' }}" MARKER_EXPRESSIONS="${{ github.event.inputs.marker_expressions || 'dfs_tests,multi_psk_tests,rate_limiting_tests,rate_limiting_with_radius_tests,dynamic_vlan_tests,multi_vlan_tests,strict_forwarding_tests,advanced_captive_portal_tests,firmware_upgrade_downgrade,asb_tests,schema_validation_tests' }}"
MARKER_EXPRESSIONS=$(echo $MARKER_EXPRESSIONS | sed "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g') MARKER_EXPRESSIONS=$(echo $MARKER_EXPRESSIONS | sed "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g')
echo "additional_arguments=$(echo ${{ github.event.inputs.additional_arguments || ''}})" >> $GITHUB_OUTPUT echo "additional_arguments=$(echo ${{ github.event.inputs.additional_arguments || ''}})" >> $GITHUB_OUTPUT
cat >> $GITHUB_OUTPUT << EOF cat >> $GITHUB_OUTPUT << EOF
@@ -203,6 +203,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-3a
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -535,6 +561,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-1
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -868,6 +920,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-6
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -1201,6 +1279,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-2
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -1534,6 +1638,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-5a
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -1866,6 +1996,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-1a
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -2199,6 +2355,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-2a
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -2531,6 +2713,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-4
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -2858,6 +3066,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-6a
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -3190,6 +3424,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-3
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -3522,6 +3782,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-5
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -3854,6 +4140,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-4a
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -4186,6 +4498,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-3
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -4518,6 +4856,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-1
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"
@@ -4850,6 +5214,32 @@ jobs:
continue-on-error: true continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs
- name: run schema_validation tests
uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')"
with:
namespace: ${{ steps.namespace.outputs.name }}-schema-validation
testbed: basic-4
marker_expression: "ow_regression_lf and schema_validation_tests"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }} ${{ github.event.inputs.additional_args }}"
allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_tests
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation
- name: run multipsk tests - name: run multipsk tests
uses: ./.github/actions/run-tests uses: ./.github/actions/run-tests
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')"

View File

@@ -9,7 +9,7 @@ import time
from tabulate import tabulate from tabulate import tabulate
from datetime import datetime from datetime import datetime
pytestmark = [pytest.mark.schema_validation] pytestmark = [pytest.mark.schema_validation_tests, pytest.mark.ow_regression_lf]
# Get the directory of the current test config file # Get the directory of the current test config file
@@ -22,12 +22,12 @@ with open(file_path, 'r') as file:
config_data_1 = json.loads(json_string) config_data_1 = json.loads(json_string)
file_path2 = os.path.join(test_file_dir, 'master-config-2.json') file_path2 = os.path.join(test_file_dir, 'master-config-2.json')
with open(file_path, 'r') as file: with open(file_path2, 'r') as file:
json_string = file.read() json_string = file.read()
config_data_2 = json.loads(json_string) config_data_2 = json.loads(json_string)
file_path3 = os.path.join(test_file_dir, 'master-config-3.json') file_path3 = os.path.join(test_file_dir, 'master-config-3.json')
with open(file_path, 'r') as file: with open(file_path3, 'r') as file:
json_string = file.read() json_string = file.read()
config_data_3 = json.loads(json_string) config_data_3 = json.loads(json_string)
@@ -50,7 +50,6 @@ def get_github_file(url, path=None, commit_id=None):
"wlan-ucentral-schema repo.") "wlan-ucentral-schema repo.")
return response.text return response.text
def validate_schema_through_github(commit_id, path): def validate_schema_through_github(commit_id, path):
def get_commit_id(owner, repo, path="", headers=None): def get_commit_id(owner, repo, path="", headers=None):
if headers is None: if headers is None:
@@ -116,7 +115,8 @@ def validate_schema_through_github(commit_id, path):
allure.attach(updated_schema_pretty_json, name=f"NEW {path}:") allure.attach(updated_schema_pretty_json, name=f"NEW {path}:")
if updated_schema_pretty_json == previous_schema_pretty_json: if updated_schema_pretty_json == previous_schema_pretty_json:
logging.info(f"No changes found at {path}. Exiting.") logging.info(f"No changes were found at {path}. Exiting.")
allure.attach(name=f"No changes found at {path}", body=f"No changes were found at {path}. Exiting the test.")
return None, None, None return None, None, None
else: else:
logging.info(f"Changes found at {path}. Proceeding with the comparison.") logging.info(f"Changes found at {path}. Proceeding with the comparison.")
@@ -124,6 +124,15 @@ def validate_schema_through_github(commit_id, path):
json.loads(updated_schema_pretty_json)) json.loads(updated_schema_pretty_json))
return added_keys, removed_keys, changed_items return added_keys, removed_keys, changed_items
def convert_changed_items_to_vertical_table(changed_items):
formatted_rows = []
for path, old, new in changed_items:
formatted_rows.append(["Key Path", path])
formatted_rows.append(["Old Value", old])
formatted_rows.append(["New Value", new])
formatted_rows.append(["", ""]) # Add blank line between entries
return tabulate(formatted_rows, headers=["Field", "Content"], tablefmt="fancy_grid")
if commit_id is None: if commit_id is None:
logging.info("Use --commit-id to the pass an old commit-id of tip/wlan-ucentral-schema repo. Skipping the test.") logging.info("Use --commit-id to the pass an old commit-id of tip/wlan-ucentral-schema repo. Skipping the test.")
pytest.skip("Use --commit-id to the pass an old commit-id of tip/wlan-ucentral-schema repo. Skipping the test.") pytest.skip("Use --commit-id to the pass an old commit-id of tip/wlan-ucentral-schema repo. Skipping the test.")
@@ -164,15 +173,17 @@ def validate_schema_through_github(commit_id, path):
if changed_items: if changed_items:
changed_items = [list(key) for key in changed_items] changed_items = [list(key) for key in changed_items]
changed_items = sorted(changed_items) changed_items = sorted(changed_items)
message = ("Note: The value at these key paths have been modified.\n\n" message = (
+ tabulate(changed_items, headers=['Key Paths', 'Old Value', 'New Value'], tablefmt='fancy_grid')) "Note: The following key paths have modified values:\n\n"
+ convert_changed_items_to_vertical_table(changed_items)
)
logging.info("\nChanged Items:\n" + message + "\n") logging.info("\nChanged Items:\n" + message + "\n")
allure.attach(message, name="Changed items:") allure.attach(message, name="Changed items:")
pytest.fail(f"Differences found in the schema, check Test Body for Added/Removed/Changed items") pytest.fail(f"Differences found in the schema, check Test Body for Added/Removed/Changed items")
return return
def validate_state_message_through_ap(test_object, target_object, config_data): def validate_state_message_through_ap(test_object, target_object, config_data, ssid=None):
def get_type_of_message(message): def get_type_of_message(message):
type_of_message = "unknown" type_of_message = "unknown"
if isinstance(message, dict): if isinstance(message, dict):
@@ -316,8 +327,9 @@ def validate_state_message_through_ap(test_object, target_object, config_data):
radio_5g = dict_all_radios_5g[radio][0] radio_5g = dict_all_radios_5g[radio][0]
break break
logging.info(f"ssid:{ssid}")
test_object.pre_cleanup() test_object.pre_cleanup()
fiveg_sta_got_ip = test_object.client_connect_using_radio(ssid="captive-credential-4", fiveg_sta_got_ip = test_object.client_connect_using_radio(ssid=ssid,
passkey="OpenWifi", passkey="OpenWifi",
security="wpa2", radio=radio_5g, security="wpa2", radio=radio_5g,
station_name=["station-5G"], station_name=["station-5G"],
@@ -448,7 +460,7 @@ class TestSchemaValidationThroughGitHub(object):
Objective is to identify any modifications, additions, or removals in the file: ucentral.schema.json. Objective is to identify any modifications, additions, or removals in the file: ucentral.schema.json.
Unique Marker: Unique Marker:
schema_validation and through_github and schema_json schema_validation_tests and through_github and schema_json
""" """
validate_schema_through_github(commit_id, "/ucentral.schema.json") validate_schema_through_github(commit_id, "/ucentral.schema.json")
@@ -466,7 +478,7 @@ class TestSchemaValidationThroughGitHub(object):
Objective is to identify any modifications, additions, or removals in the file: ucentral.schema.full.json. Objective is to identify any modifications, additions, or removals in the file: ucentral.schema.full.json.
Unique Marker: Unique Marker:
schema_validation and through_github and schema_full_json schema_validation_tests and through_github and schema_full_json
""" """
validate_schema_through_github(commit_id, "/ucentral.schema.full.json") validate_schema_through_github(commit_id, "/ucentral.schema.full.json")
@@ -483,7 +495,7 @@ class TestSchemaValidationThroughGitHub(object):
Objective is to identify any modifications, additions, or removals in the file: ucentral.schema.pretty.json. Objective is to identify any modifications, additions, or removals in the file: ucentral.schema.pretty.json.
Unique Marker: Unique Marker:
schema_validation and through_github and schema_pretty_json schema_validation_tests and through_github and schema_pretty_json
""" """
validate_schema_through_github(commit_id, "/ucentral.schema.pretty.json") validate_schema_through_github(commit_id, "/ucentral.schema.pretty.json")
@@ -500,7 +512,7 @@ class TestSchemaValidationThroughGitHub(object):
Objective is to identify any modifications, additions, or removals in the file: ucentral.state.pretty.json. Objective is to identify any modifications, additions, or removals in the file: ucentral.state.pretty.json.
Unique Marker: Unique Marker:
schema_validation and through_github and state_pretty_json schema_validation_tests and through_github and state_pretty_json
""" """
validate_schema_through_github(commit_id, "/ucentral.state.pretty.json") validate_schema_through_github(commit_id, "/ucentral.state.pretty.json")
@@ -524,9 +536,10 @@ class TestSchemaValidationThroughAPTerminal(object):
Objective is to detect discrepancies in data types (e.g., string to integer) and object structures. Objective is to detect discrepancies in data types (e.g., string to integer) and object structures.
Unique Marker: Unique Marker:
schema_validation and through_ap_terminal and master_config_1 schema_validation_tests and through_ap_terminal and master_config_1
""" """
validate_state_message_through_ap(get_test_library, get_target_object, config_data=config_data_1) ssid = "captive-credential-4"
validate_state_message_through_ap(get_test_library, get_target_object, config_data=config_data_1, ssid=ssid)
@pytest.mark.master_config_2 @pytest.mark.master_config_2
@allure.title("Pushing master config-2") @allure.title("Pushing master config-2")
@@ -541,9 +554,10 @@ class TestSchemaValidationThroughAPTerminal(object):
Objective is to detect discrepancies in data types (e.g., string to integer) and object structures. Objective is to detect discrepancies in data types (e.g., string to integer) and object structures.
Unique Marker: Unique Marker:
schema_validation and through_ap_terminal and master_config_2 schema_validation_tests and through_ap_terminal and master_config_2
""" """
validate_state_message_through_ap(get_test_library, get_target_object, config_data=config_data_2) ssid = "captive-uam-8"
validate_state_message_through_ap(get_test_library, get_target_object, config_data=config_data_2, ssid=ssid)
@pytest.mark.master_config_3 @pytest.mark.master_config_3
@allure.title("Pushing master config-3") @allure.title("Pushing master config-3")
@@ -558,6 +572,7 @@ class TestSchemaValidationThroughAPTerminal(object):
Objective is to detect discrepancies in data types (e.g., string to integer) and object structures. Objective is to detect discrepancies in data types (e.g., string to integer) and object structures.
Unique Marker: Unique Marker:
schema_validation and through_ap_terminal and master_config_3 schema_validation_tests and through_ap_terminal and master_config_3
""" """
validate_state_message_through_ap(get_test_library, get_target_object, config_data=config_data_3) ssid = "Uchannel-ds-4"
validate_state_message_through_ap(get_test_library, get_target_object, config_data=config_data_3, ssid=ssid)