use a custom error class in tests

This commit is contained in:
Thomas Rubini 2023-01-05 15:05:31 +01:00
parent a926206db8
commit f8783885f6
No known key found for this signature in database
GPG Key ID: C7D287C8C1CAC373

View File

@ -4,6 +4,14 @@ from truthseeker import app
test_app = app.test_client()
class TestException(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return self.message
###############################################################################
# #
# #
@ -21,12 +29,12 @@ def createGame(user:User):
data = {"username":user.username}
responseObject = test_app.post("/api/v1/createGame",data=data)
if responseObject.status_code != 200:
raise Exception("status code is not 200")
raise TestException("status code is not 200")
content = responseObject.json
if content is None:
raise Exception("Response is null")
raise TestException("Response is null")
if content["error"] != 0:
raise Exception("backend returned an error: "+content["msg"])
raise TestException("backend returned an error: "+content["msg"])
user.isAdmin = True
return content["game_id"]
@ -35,23 +43,23 @@ def joinGame(user:User,game_id:str):
data = {"username":user.username,"game_id":game_id}
responseObject = test_app.post("/api/v1/joinGame",data=data)
if responseObject.status_code != 200:
raise Exception("status code is not 200")
raise TestException("status code is not 200")
content = responseObject.json
if content is None:
raise Exception("Response is null")
raise TestException("Response is null")
if content["error"] != 0:
raise Exception("backend returned an error: "+content["msg"])
raise TestException("backend returned an error: "+content["msg"])
return True
def startGame(user:User):
responseObject = test_app.post("/api/v1/startGame")
if responseObject.status_code != 200:
raise Exception("status code is not 200")
raise TestException("status code is not 200")
content = responseObject.json
if content is None:
raise Exception("Response is null")
raise TestException("Response is null")
if content["error"] != 0:
raise Exception("backend returned an error: "+content["msg"])
raise TestException("backend returned an error: "+content["msg"])
return True
@ -94,17 +102,17 @@ def test_that_not_sending_a_username_results_in_an_error():
def test_that_sending_a_empty_username_results_in_an_error():
user = User("")
with pytest.raises(Exception) as e:
with pytest.raises(TestException) as e:
createGame(user)
def test_that_a_too_long_username_results_in_an_error():
user = User("Le test unitaire est un moyen de vérifier quun extrait de code fonctionne correctement. Cest lune des procédures mises en oeuvre dans le cadre dune méthodologie de travail agile. ")
with pytest.raises(Exception) as e:
with pytest.raises(TestException) as e:
createGame(user)
def test_that_username_that_contains_non_alphanumerics_results_in_an_error():
user = User("я русский пират")
with pytest.raises(Exception) as e:
with pytest.raises(TestException) as e:
createGame(user)
###############################################################################
@ -188,14 +196,14 @@ def test_that_people_can_start_a_game():
def test_that_a_started_game_cannot_be_started_again():
with pytest.raises(Exception) as e:
with pytest.raises(TestException) as e:
owner = User("neosteopathie")
game_id = createGame(owner)
startGame(owner)
assert "Status is not ok" in str(e.value)
def test_that_non_owners_cant_start_a_game():
with pytest.raises(Exception) as e:
with pytest.raises(TestException) as e:
owner = User("neosteopathie")
notOwner = User("neorphelin")
game_id = createGame(owner)