Change all response checks from 'body' to 'json'
and add matchers for response body entries.
Signed-off-by: Lott, Christopher (cl778h) <cl778h@att.com>
Change-Id: I0f8eabbd2d01d645ca1c6dae4d20db5bb233370a
* Add documentation of start/init parameters to _RmrLoop class
* Add new environment variable USE_FAKE_SDL (`RIC-351 <https://jira.o-ran-sc.org/browse/RIC-351>`_)
* Respond with error if policy type ID differs from ID in object on create
* Add documentation of start/init parameters to _RmrLoop class
* Add new environment variable USE_FAKE_SDL (`RIC-351 <https://jira.o-ran-sc.org/browse/RIC-351>`_)
* Respond with error if policy type ID differs from ID in object on create
+* Upgrade integration tests to use Tavern version 1.0.0
#!/bin/bash
# fail on error
set -eux
#!/bin/bash
# fail on error
set -eux
-kubectl port-forward $(kubectl get pods --namespace default -l "app.kubernetes.io/name=a1mediator,app.kubernetes.io/instance=a1" -o jsonpath="{.items[0].metadata.name}") 10000:10000 2>&1 > forward.log &
+pod=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=a1mediator,app.kubernetes.io/instance=a1" -o jsonpath="{.items[0].metadata.name}")
+# this listener must run to forward the port, it's not just a config change
+# it logs a line periodically that don't add much value, capture in a file.
+rm forward.log
+kubectl port-forward "$pod" 10000:10000 > forward.log 2>&1 &
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: instance list 404
request:
- name: instance list 404
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: instance list 200 but empty
request:
- name: instance list 200 but empty
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: test the admission control policy get not there yet
request:
- name: test the admission control policy get not there yet
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
class: 12
enforce: true
window_length: 20
class: 12
enforce: true
window_length: 20
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "IN EFFECT"
has_been_deleted: False
instance_status: "IN EFFECT"
has_been_deleted: False
- name: instance list 200 and contains the instance
request:
- name: instance list 200 and contains the instance
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- admission_control_policy
# DELETE the instance and make sure subsequent GETs return properly
- admission_control_policy
# DELETE the instance and make sure subsequent GETs return properly
- name: status should now be not in effect but still there
delay_before: 3 # give it a few seconds for rmr
- name: status should now be not in effect but still there
delay_before: 3 # give it a few seconds for rmr
- delay_after: 8 # 3 + 11 > 10; that is, wait until t2 expires
+ delay_after: 10 # 3 + 10 > 10; that is, wait until t2 expires
request:
url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy/status
method: GET
response:
status_code: 200
request:
url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy/status
method: GET
response:
status_code: 200
instance_status: "NOT IN EFFECT"
has_been_deleted: True
instance_status: "NOT IN EFFECT"
has_been_deleted: True
+ deleted_at: !anyfloat
+ created_at: !anyfloat
- name: instance list 200 but no instance
request:
- name: instance list 200 but no instance
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: cant get instance status
request:
- name: cant get instance status
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: instance list 404
request:
- name: instance list 404
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
name: test policy
description: just for testing
policy_type_id: 20001
name: test policy
description: just for testing
policy_type_id: 20001
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- 20001
- name: instance list 200 but empty
- 20001
- name: instance list 200 but empty
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: test the delay policy instance get not there yet
request:
- name: test the delay policy instance get not there yet
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "NOT IN EFFECT"
has_been_deleted: False
instance_status: "NOT IN EFFECT"
has_been_deleted: False
- name: test the delay policy get
request:
- name: test the delay policy get
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
test: foo
- name: instance list 200 and there
test: foo
- name: instance list 200 and there
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- delaytest
- name: test the delay status get
- delaytest
- name: test the delay status get
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "IN EFFECT"
has_been_deleted: False
instance_status: "IN EFFECT"
has_been_deleted: False
# DELETE the instance and make sure subsequent GETs return properly
- name: delete the instance
# DELETE the instance and make sure subsequent GETs return properly
- name: delete the instance
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "IN EFFECT"
has_been_deleted: True
instance_status: "IN EFFECT"
has_been_deleted: True
+ deleted_at: !anyfloat
+ created_at: !anyfloat
- name: test the delay status get after delay but before timers
delay_before: 7
- name: test the delay status get after delay but before timers
delay_before: 7
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "NOT IN EFFECT"
has_been_deleted: True
instance_status: "NOT IN EFFECT"
has_been_deleted: True
+ deleted_at: !anyfloat
+ created_at: !anyfloat
- name: test the delay status get after delay and after the timers
delay_before: 7
- name: test the delay status get after delay and after the timers
delay_before: 7
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
- name: instance 1
request:
- name: instance 1
request:
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
# after the query, a1 should send, query receiver should send back, and the policy should be in effect
# sometimes in kubernetes, this test takes a long time to work because of an k8s issue
# after the query, a1 should send, query receiver should send back, and the policy should be in effect
# sometimes in kubernetes, this test takes a long time to work because of an k8s issue
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "IN EFFECT"
has_been_deleted: False
instance_status: "IN EFFECT"
has_been_deleted: False
- name: test the query status get 2
max_retries: 100
- name: test the query status get 2
max_retries: 100
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
instance_status: "IN EFFECT"
has_been_deleted: False
instance_status: "IN EFFECT"
has_been_deleted: False
method: GET
response:
status_code: 200
method: GET
response:
status_code: 200
# this one cant currently be deleted, see the comment in a1/data.py
# this one cant currently be deleted, see the comment in a1/data.py
getlogs.sh
passenv = *
deps =
getlogs.sh
passenv = *
deps =
- tavern == 0.34.0 # version 1.0 uses different schema; body -> json
+ tavern == 1.0.0 # pin the version
changedir=integration_tests
commands_pre=
echo "WARNING: make sure you are running with latest docker builds!"
changedir=integration_tests
commands_pre=
echo "WARNING: make sure you are running with latest docker builds!"
helm install --devel a1 a1mediator
helm install --devel dbaas dbaas-service
kubectl get pods --namespace=default
helm install --devel a1 a1mediator
helm install --devel dbaas dbaas-service
kubectl get pods --namespace=default
- echo "wait for pods to start"
+ echo "delay so pods can start"
sleep 30
kubectl get pods --namespace=default
echo "forward ports"
./portforward.sh
sleep 30
kubectl get pods --namespace=default
echo "forward ports"
./portforward.sh
- echo "wait for port forward"
+ echo "delay so port forward can start"
sleep 5
commands=
echo "running tavern via pytest"
pytest --version
sleep 5
commands=
echo "running tavern via pytest"
pytest --version
- # --tavern-beta-new-traceback for 0.34.0; fails in 1.0.0
- pytest --tavern-beta-new-traceback test_a1.tavern.yaml
+ pytest test_a1.tavern.yaml
echo "running apache bench (ab) on healthcheck endpoint"
# use -v 4 to make ab chatty
ab -n 100 -c 10 -v 0 http://localhost:10000/a1-p/healthcheck
echo "running apache bench (ab) on healthcheck endpoint"
# use -v 4 to make ab chatty
ab -n 100 -c 10 -v 0 http://localhost:10000/a1-p/healthcheck