add: tests

add: schedule endpoints
This commit is contained in:
Tobias Reisinger 2020-05-05 22:29:04 +02:00
parent 6d828fcffc
commit b5a8523ae0
14 changed files with 468 additions and 42 deletions

17
tests/run_tests.sh Executable file
View file

@ -0,0 +1,17 @@
#!/usr/bin/env sh
mkdir ./testing_tmp
cd ./testing_tmp
cp $1 ./core
cp $2 ./core.ini
./core start >/dev/null 2>&1 &
core_id=$!
sleep 2;
tavern-ci --tavern-beta-new-traceback ..
kill $core_id
cd ..
rm -r ./testing_tmp

View file

@ -0,0 +1,25 @@
test_name: Test basic get all requests
stages:
- name: "[test_get_all] get all schedules"
request:
url: "http://localhost:5000/api/v1/schedules/"
method: GET
response:
status_code: 200
- name: "[test_get_all] get all relays"
skip: True
request:
url: "http://localhost:5000/api/v1/relays/"
method: GET
response:
status_code: 200
- name: "[test_get_all] get all controllers"
skip: True
request:
url: "http://localhost:5000/api/v1/controllers/"
method: GET
response:
status_code: 200

View file

@ -0,0 +1,50 @@
test_name: Test basic requests
stages:
- name: "[test_schedules_basic] Make sure we get any response"
request:
url: "http://localhost:5000/api/v1/schedules/"
method: GET
response:
status_code: 200
- name: "[test_schedules_basic] post schedule, expect it to be echoed back"
request:
method: POST
url: "http://localhost:5000/api/v1/schedules/"
json:
name: "hello"
periods:
- start: '00:10'
end: '00:20'
- start: '00:30'
end: '00:40'
- start: '00:50'
end: '01:00'
response:
status_code: 201
body:
name: "{tavern.request_vars.json.name}"
save:
body:
returned_name: name
returned_id: id
- name: "[test_schedules_basic] get schedule, check name and some periods"
request:
method: GET
url: "http://localhost:5000/api/v1/schedules/{returned_id}"
response:
status_code: 200
body:
name: "{returned_name}"
- name: "[test_schedules_basic] delete schedule"
request:
method: DELETE
url: "http://localhost:5000/api/v1/schedules/{returned_id}"
response:
status_code: 200
- name: "[test_schedules_basic] get deleted schedule, expect 404"
request:
method: GET
url: "http://localhost:5000/api/v1/schedules/{returned_id}"
response:
status_code: 404

View file

@ -0,0 +1,66 @@
test_name: Test basic requests
stages:
- name: "[test_schedules_protected] delete protected off schedule; expect forbidden/fail"
request:
method: DELETE
url: "http://localhost:5000/api/v1/schedules/off"
response:
status_code: 403
- name: "[test_schedules_protected] get protected off schedule"
request:
method: GET
url: "http://localhost:5000/api/v1/schedules/off"
response:
status_code: 200
body:
name: "off"
periods: []
- name: "[test_schedules_protected] overwrite protected off schedule"
request:
method: PUT
url: "http://localhost:5000/api/v1/schedules/off"
json:
name: "turned_off"
periods:
- start: "00:10"
end: "00:20"
response:
status_code: 200
body:
name: "{tavern.request_vars.json.name}"
periods: []
- name: "[test_schedules_protected] delete protected on schedule; expect forbidden/fail"
request:
method: DELETE
url: "http://localhost:5000/api/v1/schedules/on"
response:
status_code: 403
- name: get protected on schedule
request:
method: GET
url: "http://localhost:5000/api/v1/schedules/on"
response:
status_code: 200
body:
name: "on"
periods:
- start: "00:00"
end: "23:59"
- name: "[test_schedules_protected] overwrite protected on schedule"
request:
method: PUT
url: "http://localhost:5000/api/v1/schedules/on"
json:
name: "turned_on"
periods:
- start: "16:10"
end: "17:20"
response:
status_code: 200
body:
name: "{tavern.request_vars.json.name}"
periods:
- start: "00:00"
end: "23:59"