From 5321c06d24315dd11cabaa7d2bcaa1f42e49e3ca Mon Sep 17 00:00:00 2001 From: landrigun Date: Mon, 19 Sep 2022 14:10:03 +0000 Subject: [PATCH] improv: #5 add e2e tests --- .gitignore | 3 +++ tests/bash/curling.bash | 36 +++++++++++++++++++++++++++++++++++ tests/python/test_requests.py | 34 +++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100755 tests/bash/curling.bash create mode 100644 tests/python/test_requests.py diff --git a/.gitignore b/.gitignore index 39ac593..ddf9e12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /target simple-auth *.swp + +tests/python/__pycache__ +tests/bash/response.txt diff --git a/tests/bash/curling.bash b/tests/bash/curling.bash new file mode 100755 index 0000000..3e7e1db --- /dev/null +++ b/tests/bash/curling.bash @@ -0,0 +1,36 @@ +#!/bin/bash + +####################################### +# +# A simple curl test on a deployed app +# +####################################### + +URL="https://dev.thegux.fr" + +for i in {0..10} +do + http_response=$(curl -s -o response.txt -w "%{http_code}" ${URL}/get/ -d '{"username":"toto", "password":"tutu"}') + if [ $http_response != "200" ] + then + echo "bad http status code : ${http_response}, expect 200" + exit 1 + fi + + if [ $(cat response.txt | jq -r '.[]') != "ok" ] + then + echo "bad data returned, expect : ok" + exit 1 + fi +done + + +for i in {0..10} +do + http_response=$(curl -s -o response.txt -w "%{http_code}" ${URL}/ge/ -d '{"username":"toto", "password":"tutu"}') + if [ $http_response != "400" ] + then + echo "bad http status code : ${http_response}, expect 400" + exit 1 + fi +done diff --git a/tests/python/test_requests.py b/tests/python/test_requests.py new file mode 100644 index 0000000..66534c5 --- /dev/null +++ b/tests/python/test_requests.py @@ -0,0 +1,34 @@ +import requests + +URL = "https://dev.thegux.fr" + + +def test_get_target(): + resp = requests.post(URL + "/get/", json={"username": "toto", "password": "tata"}) + assert resp.status_code == 200, "bad status code returned" + assert resp.json() is not None, "response data can't be empty" + assert resp.json()["status"] == "ok", "bad status returned" + + +def test_validate_target(): + resp = requests.post( + URL + "/validate/", json={"username": "toto", "password": "tata"} + ) + assert resp.status_code == 200, "bad status code returned" + assert resp.json() is not None, "response data can't be empty" + assert resp.json()["status"] == "ok", "bad status returned" + + +def test_refresh_target(): + resp = requests.post( + URL + "/refresh/", json={"username": "toto", "password": "tata"} + ) + assert resp.status_code == 200, "bad status code returned" + assert resp.json() is not None, "response data can't be empty" + assert resp.json()["status"] == "ok", "bad status returned" + + +def test_bad_target(): + resp = requests.post(URL + "/token/", json={"username": "toto", "password": "tata"}) + assert resp.status_code == 400, "bad status code returned" + assert resp.text == "", "response data must be empty"