diff options
Diffstat (limited to 'tools/cru-py/crupest/test.py')
-rw-r--r-- | tools/cru-py/crupest/test.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/cru-py/crupest/test.py b/tools/cru-py/crupest/test.py new file mode 100644 index 0000000..d6eb778 --- /dev/null +++ b/tools/cru-py/crupest/test.py @@ -0,0 +1,31 @@ +import json +from http.client import * +from urllib.request import urlopen + + +def test_crupest_api(console): + def do_the_test(): + res: HTTPResponse = urlopen("http://localhost:5188/api/todos") + body = res.read() + + if res.status != 200: + raise Exception("Status code is not 200.") + result = json.loads(body) + if not isinstance(result, list): + raise Exception("Result is not an array.") + if len(result) == 0: + raise Exception("Result is an empty array.") + if not isinstance(result[0], dict): + raise Exception("Result[0] is not an object.") + if not isinstance(result[0].get("title"), str): + raise Exception("Result[0].title is not a string.") + if not isinstance(result[0].get("status"), str): + raise Exception("Result[0].status is not a string.") + + try: + do_the_test() + console.print("Test passed!", style="green") + exit(0) + except Exception as e: + console.print(e) + console.print("Test failed!", style="red") |