use a custom error class in tests
This commit is contained in:
parent
a926206db8
commit
f8783885f6
@ -4,6 +4,14 @@ from truthseeker import app
|
|||||||
|
|
||||||
test_app = app.test_client()
|
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}
|
data = {"username":user.username}
|
||||||
responseObject = test_app.post("/api/v1/createGame",data=data)
|
responseObject = test_app.post("/api/v1/createGame",data=data)
|
||||||
if responseObject.status_code != 200:
|
if responseObject.status_code != 200:
|
||||||
raise Exception("status code is not 200")
|
raise TestException("status code is not 200")
|
||||||
content = responseObject.json
|
content = responseObject.json
|
||||||
if content is None:
|
if content is None:
|
||||||
raise Exception("Response is null")
|
raise TestException("Response is null")
|
||||||
if content["error"] != 0:
|
if content["error"] != 0:
|
||||||
raise Exception("backend returned an error: "+content["msg"])
|
raise TestException("backend returned an error: "+content["msg"])
|
||||||
user.isAdmin = True
|
user.isAdmin = True
|
||||||
return content["game_id"]
|
return content["game_id"]
|
||||||
|
|
||||||
@ -35,23 +43,23 @@ def joinGame(user:User,game_id:str):
|
|||||||
data = {"username":user.username,"game_id":game_id}
|
data = {"username":user.username,"game_id":game_id}
|
||||||
responseObject = test_app.post("/api/v1/joinGame",data=data)
|
responseObject = test_app.post("/api/v1/joinGame",data=data)
|
||||||
if responseObject.status_code != 200:
|
if responseObject.status_code != 200:
|
||||||
raise Exception("status code is not 200")
|
raise TestException("status code is not 200")
|
||||||
content = responseObject.json
|
content = responseObject.json
|
||||||
if content is None:
|
if content is None:
|
||||||
raise Exception("Response is null")
|
raise TestException("Response is null")
|
||||||
if content["error"] != 0:
|
if content["error"] != 0:
|
||||||
raise Exception("backend returned an error: "+content["msg"])
|
raise TestException("backend returned an error: "+content["msg"])
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def startGame(user:User):
|
def startGame(user:User):
|
||||||
responseObject = test_app.post("/api/v1/startGame")
|
responseObject = test_app.post("/api/v1/startGame")
|
||||||
if responseObject.status_code != 200:
|
if responseObject.status_code != 200:
|
||||||
raise Exception("status code is not 200")
|
raise TestException("status code is not 200")
|
||||||
content = responseObject.json
|
content = responseObject.json
|
||||||
if content is None:
|
if content is None:
|
||||||
raise Exception("Response is null")
|
raise TestException("Response is null")
|
||||||
if content["error"] != 0:
|
if content["error"] != 0:
|
||||||
raise Exception("backend returned an error: "+content["msg"])
|
raise TestException("backend returned an error: "+content["msg"])
|
||||||
return True
|
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():
|
def test_that_sending_a_empty_username_results_in_an_error():
|
||||||
user = User("")
|
user = User("")
|
||||||
with pytest.raises(Exception) as e:
|
with pytest.raises(TestException) as e:
|
||||||
createGame(user)
|
createGame(user)
|
||||||
|
|
||||||
def test_that_a_too_long_username_results_in_an_error():
|
def test_that_a_too_long_username_results_in_an_error():
|
||||||
user = User("Le test unitaire est un moyen de vérifier qu’un extrait de code fonctionne correctement. C’est l’une des procédures mises en oeuvre dans le cadre d’une méthodologie de travail agile. ")
|
user = User("Le test unitaire est un moyen de vérifier qu’un extrait de code fonctionne correctement. C’est l’une des procédures mises en oeuvre dans le cadre d’une méthodologie de travail agile. ")
|
||||||
with pytest.raises(Exception) as e:
|
with pytest.raises(TestException) as e:
|
||||||
createGame(user)
|
createGame(user)
|
||||||
|
|
||||||
def test_that_username_that_contains_non_alphanumerics_results_in_an_error():
|
def test_that_username_that_contains_non_alphanumerics_results_in_an_error():
|
||||||
user = User("я русский пират")
|
user = User("я русский пират")
|
||||||
with pytest.raises(Exception) as e:
|
with pytest.raises(TestException) as e:
|
||||||
createGame(user)
|
createGame(user)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -188,14 +196,14 @@ def test_that_people_can_start_a_game():
|
|||||||
|
|
||||||
|
|
||||||
def test_that_a_started_game_cannot_be_started_again():
|
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")
|
owner = User("neosteopathie")
|
||||||
game_id = createGame(owner)
|
game_id = createGame(owner)
|
||||||
startGame(owner)
|
startGame(owner)
|
||||||
assert "Status is not ok" in str(e.value)
|
assert "Status is not ok" in str(e.value)
|
||||||
|
|
||||||
def test_that_non_owners_cant_start_a_game():
|
def test_that_non_owners_cant_start_a_game():
|
||||||
with pytest.raises(Exception) as e:
|
with pytest.raises(TestException) as e:
|
||||||
owner = User("neosteopathie")
|
owner = User("neosteopathie")
|
||||||
notOwner = User("neorphelin")
|
notOwner = User("neorphelin")
|
||||||
game_id = createGame(owner)
|
game_id = createGame(owner)
|
||||||
|
Loading…
Reference in New Issue
Block a user