INPRO: Bugfixing and better returns

This commit is contained in:
2023-06-04 15:30:59 -07:00
parent a88774fc5b
commit 6c5717c4d1
5 changed files with 98 additions and 39 deletions
+33 -34
View File
@@ -7,14 +7,7 @@ from os import stat, getuid
def check_sanity():
check_database_permissions()
check_random()
check_verse_of_the_day()
check_find()
check_define()
check_search()
check_show()
check_seq()
check_shortcode()
def check_database_permissions():
dependancies = ['data/seq.db', "data/shortcodes.db"]
@@ -22,35 +15,41 @@ def check_database_permissions():
for dependancy in dependancies:
if stat(dependancy).st_uid != current_uid:
raise PermissionError(dependancy)
def check_random():
#TODO: Ensure random returns a verse
pass
def check_verse_of_the_day():
#TODO: Ensure VOTD returns a verse, the same, at least twice
pass
def check_queries(url=None):
try:
import requests
except ImportError:
raise ImportError("You must install the requests python3 module")
endpoints: list = 'show find search seq status votd random define'.split(" ")
viewarguments: list = 'rich plain json'.split(" ")
with open("tools/search_keywords.txt") as f:
keywords = f.read().splitlines()
def check_find():
#TODO: Ensure that a varaity of queries don't cause an error (need to define a few)
pass
log = []
def check_define():
#TODO: Ensure a few words that are in the dictionary (and those that are not) and those misspelled, give correct responses
pass
baseurl = "http://localhost:1611"
if url:
baseurl = url
def check_search():
#TODO: Ensure that blanket searches with different syntaxes resolve correctly
pass
for endpoint in endpoints:
for viewargument in viewarguments:
for keyword in keywords:
testurl = f"{baseurl}/{endpoint}?view={viewargument}&kw={keyword}"
r = requests.get(testurl)
log.append([testurl, r.status_code])
def check_show():
#TODO: Ensure that many types of verse syntaxes correctly resolve.
pass
with open("tools/sanity_results.txt", 'r+') as logfile:
for logged in log:
if logged[1] != 200:
logfile.write(f"{logged[1]} - {logged[0]}\n")
def check_seq():
#TODO: Begin a new sequence and check that it does not give us an error
pass
def check_shortcode():
#TODO: make a new shortcode for a search and then try to resolve it.
pass
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser("Endpoint testing for your kjv api.")
parser.add_argument('url', type=str, nargs='?', help="like http://localhost:1611")
args = parser.parse_args()
if not args.url:
print("Trying default http://localhost:1611")
url = "http://localhost:1611"
check_queries(url=args.url)
+35
View File
@@ -0,0 +1,35 @@
Genesis 1
Genesis1
Gen1
Gen 1:
Genesis 1:-
Genesis 1:1
Genesis 1:1-2
Genesis 1:-3
Genesis 1-2
Genesis
Genesis 99
1 Cor 1
1cor1
1 cor 1:
1 cor 2:
1 cor 1:1-5
1 cor 2:3-1
jude 1
1 jude 1:
genesis1:1, genesis1
genesis1:1, genesis1,
genesis1:1,, genesis1,
gen1';,.fen fe efj
fpqm3]p 4 04 4jio4mngf
# a devilish Test
" select * from *;;;;;
walrus
and
lord
his
shall
they
even
therefore
should