aboutsummaryrefslogtreecommitdiff
path: root/tool/modules/test.py
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-11-28 13:13:27 +0800
committercrupest <crupest@outlook.com>2022-11-28 13:13:27 +0800
commit51bee1e8891ebea829a1a5e9a6502a79e0e5b6db (patch)
tree63b194129d445220ce11425cc993fca67788e9ad /tool/modules/test.py
parent873c9b4e39e47d2e6e1dbf40ee6f2e812c229adb (diff)
downloadcrupest-51bee1e8891ebea829a1a5e9a6502a79e0e5b6db.tar.gz
crupest-51bee1e8891ebea829a1a5e9a6502a79e0e5b6db.tar.bz2
crupest-51bee1e8891ebea829a1a5e9a6502a79e0e5b6db.zip
Merge test into aio.
Diffstat (limited to 'tool/modules/test.py')
-rw-r--r--tool/modules/test.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tool/modules/test.py b/tool/modules/test.py
new file mode 100644
index 0000000..d6eb778
--- /dev/null
+++ b/tool/modules/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")