Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenQuizz
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
10
Issues
10
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Weber Rodolphe
OpenQuizz
Commits
586eae90
Commit
586eae90
authored
Jul 01, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tests user, contenu finis et en_cours commencés
parent
a668f5b1
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
188 additions
and
19 deletions
+188
-19
app.py
app.py
+24
-6
utils.py
config/utils.py
+0
-1
utilisateur_dao.py
modele/utilisateur_dao.py
+7
-2
testUtils.py
tests/testUtils.py
+7
-10
test_flask_contenu.py
tests/test_flask_contenu.py
+46
-0
test_flask_demande_publication.py
tests/test_flask_demande_publication.py
+0
-0
test_flask_en_cours.py
tests/test_flask_en_cours.py
+73
-0
test_flask_evaluation.py
tests/test_flask_evaluation.py
+0
-0
test_flask_utilisateur.py
tests/test_flask_utilisateur.py
+31
-0
No files found.
app.py
View file @
586eae90
...
...
@@ -112,13 +112,28 @@ class RecupererTousLesUtilisateurs(Resource):
return
json
.
loads
(
json
.
dumps
(
list
(
utilisateur_dao
.
get_all_utilisateurs
()),
default
=
json_util
.
default
)),
200
# Fonction (pour le moment) uniquement utilisée pour les tests
@
users
.
route
(
'/supprimerUser/<nom_utilisateur>'
)
@
users
.
doc
(
description
=
"récupération de tous les utilisateurs en base"
)
class
Supprimerutilisateur
(
Resource
):
@
users
.
response
(
200
,
"Utilisateur supprimé"
)
@
users
.
response
(
409
,
'Utilisateur inconnu'
)
## récupération de tous les utilisateurs en base
@
jwt_required
()
def
delete
(
self
,
nom_utilisateur
):
if
utilisateur_dao
.
presence_utilisateur
(
nom_utilisateur
):
utilisateur_dao
.
supprimer_utilisateur
(
nom_utilisateur
)
return
"Utilisateur supprimé"
,
200
else
:
return
"Utilisateur inconnu"
,
409
contenus
=
api
.
namespace
(
'contenus'
,
description
=
'Entrées liées à la gestion des contenus'
)
## *********************************************************************************************************************
## Entrées liées à la gestion des contenus
@
contenus
.
route
(
"/addContenu"
)
@
contenus
.
doc
(
params
=
{
'auteur'
:
"(l'auteur qui ajoute le contenu"
})
@
contenus
.
doc
(
params
=
{
'contenu_a_ecrire'
:
" le contenu à écrire"
})
...
...
@@ -158,7 +173,10 @@ class GetContenuParId(Resource):
## récupérer un contenu via son id
@
jwt_required
()
def
get
(
self
,
id
):
return
json
.
loads
(
json
.
dumps
(
list
(
contenu_dao
.
get_contenu_par_id
(
int
(
id
))),
default
=
json_util
.
default
)),
200
id_contenu
=
json
.
loads
(
id
)
return
json
.
loads
(
json
.
dumps
(
list
(
contenu_dao
.
get_contenu_par_id
(
id_contenu
[
"$oid"
])),
default
=
json_util
.
default
)),
200
@
contenus
.
route
(
"/getContenuPanier/<auteur>"
)
...
...
@@ -206,7 +224,7 @@ class SupprimerPerso(Resource):
@
contenus
.
doc
(
params
=
{
'auteur'
:
"l'auteur qui supprime le contenu"
})
@
contenus
.
doc
(
params
=
{
'id_tiers'
:
"le contenu à supprimer"
})
@
contenus
.
doc
(
description
=
"supprimer un tiers pour un auteur"
)
class
supprimer_t
iers
(
Resource
):
class
SupprimerT
iers
(
Resource
):
@
contenus
.
response
(
200
,
"Tiers supprimé"
)
## supprimer un tiers pour un auteur
@
jwt_required
()
...
...
@@ -263,7 +281,6 @@ class gerer_demande_pub(Resource):
@
jwt_required
()
def
patch
(
self
):
id_publication
=
json
.
loads
(
request
.
json
[
"id_publication"
])
print
(
"Je suis l'id de la publication : "
,
id_publication
[
"$oid"
])
demande_pub_Dao
.
gerer_demande_pub
(
id_publication
[
"$oid"
],
request
.
json
[
"reponse"
],
request
.
json
[
"auteur"
])
return
"Réponse à la publication gérée"
,
200
...
...
@@ -379,7 +396,8 @@ class changer_texte_contenu(Resource):
## changer le texte d'un contenu (maj de la version en cours)
@
jwt_required
()
def
patch
(
self
,
id_contenu
):
if
len
(
id_contenu
)
%
12
==
0
:
if
len
(
id_contenu
)
==
12
or
len
(
id_contenu
)
==
24
:
id_contenu
=
ObjectId
(
id_contenu
)
else
:
tmp
=
json
.
loads
(
id_contenu
)
...
...
@@ -402,8 +420,8 @@ class GetTexteContenuEnCours(Resource):
## récupérer le texte d'un contenu en cours
@
jwt_required
()
def
get
(
self
,
id_en_cours
):
if
len
(
id_en_cours
)
%
12
==
0
:
if
len
(
id_en_cours
)
==
24
or
len
(
id_en_cours
)
==
12
:
id_du_contenu
=
ObjectId
(
id_en_cours
)
else
:
tmp
=
json
.
loads
(
id_en_cours
)
...
...
config/utils.py
View file @
586eae90
...
...
@@ -34,7 +34,6 @@ class Utils:
chemin
=
EncoursDao
()
.
get_chemin_contenu_en_cours
(
id_contenu
)
else
:
chemin
=
ContenuDao
()
.
get_chemin_du_contenu
(
id_contenu
)
print
(
"chemin :"
+
chemin
)
with
open
(
chemin
,
"r"
)
as
fichier
:
texte
=
fichier
.
read
()
...
...
modele/utilisateur_dao.py
View file @
586eae90
...
...
@@ -23,12 +23,17 @@ class UtilisateurDao:
## Fonction de création d'un utilisateur
# @param nomUtilisateur le nom de l'utilisateur à créer
# @param(bientot) mot_de_passe le mdp de l'utilsateur à créer
def
ajouter_utilisateur
(
self
,
nom
U
tilisateur
):
def
ajouter_utilisateur
(
self
,
nom
_u
tilisateur
):
self
.
base_donnees
.
utilisateur
.
insert_one
(
{
"nom"
:
nom
U
tilisateur
,
"note"
:
randrange
(
0
,
10
,
1
),
"tiers"
:
[]})
{
"nom"
:
nom
_u
tilisateur
,
"note"
:
randrange
(
0
,
10
,
1
),
"tiers"
:
[]})
## Fonction de récupération de tous les utilisateurs existants (pour le filtre)
# @return les utilisateurs en base
def
get_all_utilisateurs
(
self
):
return
self
.
base_donnees
.
utilisateur
.
find
({},
{
"nom"
:
1
,
"_id"
:
0
})
## Fonction pour supprimer un utilisateur
# @param nom_utilisateur le nom de l'utilisateur à supprimer
def
supprimer_utilisateur
(
self
,
nom_utilisateur
):
self
.
base_donnees
.
utilisateur
.
delete_one
({
"nom"
:
nom_utilisateur
})
test
_flask
.py
→
test
s/testUtils
.py
View file @
586eae90
import
json
import
pytest
import
os
import
pytest
from
app
import
app
from
flask
import
url_for
@
pytest
.
fixture
...
...
@@ -16,10 +16,7 @@ def client():
yield
client
def
test_multiplication
():
assert
4
==
2
*
2
def
test_index
(
client
):
rv
=
client
.
get
(
'/'
)
assert
rv
.
status_code
==
404
def
get_headers
(
client
):
response
=
client
.
get
(
"/utilisateurs/checkUser?login=Charles"
)
headers
=
{
'Authorization'
:
'Bearer '
+
json
.
loads
(
response
.
data
)[
"access_token"
]}
return
headers
tests/test_flask_contenu.py
0 → 100644
View file @
586eae90
# from testUtils import *
#
#
# def test_contenu(client):
# data = {"auteur": "Charles", "contenu_a_ecrire": "Texte du contenu"}
# # création d'un contenu
# rv = client.post("/contenus/addContenu", json=data, headers=get_headers(client))
# assert rv.status_code == 201
# # on récupère l'id
# id = json.loads(rv.data)["_id"]
# # get contenu par id
# rv = client.get("/contenus/getContenu/" + json.dumps(id), headers=get_headers(client))
# assert rv.status_code == 200
# # on récupère le texte
# rv = client.get("/contenus/getTexteContenu/" + json.dumps(id), headers=get_headers(client))
# assert rv.status_code == 200
# assert "Texte du contenu" == json.loads(rv.data)
# # on créée un tiers avec Jacques
# # print("id : ", id["$oid"])
# data = {"id_tiers": json.dumps(id), "auteur": "Jacques", "version": 1}
# rv = client.patch("/contenus/ajouterTiers", json=data, headers=get_headers(client))
# assert rv.status_code == 201
#
# # get Contenu Panier (chez Charles)
# rv = client.get("/contenus/getContenuPanier/Charles?perso=True&tiers=True&en_cours=True",
# headers=get_headers(client))
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == 1
#
# # get Contenu Banque (chez Valery)
# rv = client.get("/contenus/getContenuBanque/Valery", headers=get_headers(client))
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == 1
#
# # get All Contenus
# rv = client.get("/contenus/allContenus", headers=get_headers(client))
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == 1
#
# # on supprime le tiers
# rv = client.delete("/contenus/deleteTiers?id_tiers=" + json.dumps(id) + "&auteur=Jacques",
# headers=get_headers(client))
# assert rv.status_code == 200
# # on le supprime
# rv = client.delete("/contenus/deletePerso/" + json.dumps(id), headers=get_headers(client))
# assert rv.status_code == 200
tests/test_flask_demande_publication.py
0 → 100644
View file @
586eae90
tests/test_flask_en_cours.py
0 → 100644
View file @
586eae90
import
json
from
testUtils
import
*
def
test_en_cours
(
client
):
# Dans un premier temps, créer un contenu
data
=
{
"auteur"
:
"Charles"
,
"contenu_a_ecrire"
:
"Texte du contenu"
}
# création d'un contenu
rv
=
client
.
post
(
"/contenus/addContenu"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# on récupère l'id du contenu créé
id
=
json
.
loads
(
rv
.
data
)[
"_id"
]
data
=
{
"auteur"
:
"Charles"
,
"id_contenu"
:
json
.
dumps
(
id
),
"provenance"
:
"perso"
,
"version"
:
1
}
# création d'un contenu en_cours
rv
=
client
.
post
(
"/en_cours/newEnCours"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# on récupère l'id du contenu en cours créé
id
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# récupération du texte (avant modif)
rv
=
client
.
get
(
"/en_cours/getTexteContenuEnCours/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
"Texte du contenu"
==
json
.
loads
(
rv
.
data
)
# modification du texte du contenu en cours
data
=
{
"nouveau_texte"
:
"Nouveau Texte du contenu"
}
rv
=
client
.
patch
(
"/contenus/changerTexte/"
+
json
.
dumps
(
id
),
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
# récupération du texte (après modif)
rv
=
client
.
get
(
"/en_cours/getTexteContenuEnCours/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
"Nouveau Texte du contenu"
==
json
.
loads
(
rv
.
data
)
# suppression du contenu en_cours
rv
=
client
.
delete
(
"/en_cours/supprimerEnCoursParId/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
def
test_en_cours_provenance_tiers
(
client
):
data
=
{
"auteur"
:
"Charles"
,
"contenu_a_ecrire"
:
"Texte du contenu"
}
# création d'un contenu
rv
=
client
.
post
(
"/contenus/addContenu"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# on récupère l'id du contenu créé
id
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# création d'un tiers
data
=
{
"id_tiers"
:
json
.
dumps
(
id
),
"auteur"
:
"Jacques"
,
"version"
:
1
}
rv
=
client
.
patch
(
"/contenus/ajouterTiers"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# création d'un en_cours
data
=
{
"auteur"
:
"Jacques"
,
"id_contenu"
:
json
.
dumps
(
id
),
"provenance"
:
"tiers"
,
"version"
:
1
}
# création d'un contenu en_cours
rv
=
client
.
post
(
"/en_cours/newEnCours"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# on récupère l'id du contenu en cours créé
id
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# suppression du contenu en_cours
rv
=
client
.
delete
(
"/en_cours/supprimerEnCoursParId/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
def
test_en_cours_directement_valide
(
client
):
pass
tests/test_flask_evaluation.py
0 → 100644
View file @
586eae90
tests/test_flask_utilisateur.py
0 → 100644
View file @
586eae90
# from testUtils import *
#
#
# def test_test(client):
# rv = client.get('/test')
# assert b'hello world' in rv.data
# assert rv.status_code == 200
#
#
# def test_new_user(client):
# data = {"login": "Georges"}
# rv = client.post("/utilisateurs/newUser", json=data)
# assert rv.status_code == 201
# rv = client.post("/utilisateurs/newUser", json=data)
# assert rv.status_code == 409
# rv = client.delete('/utilisateurs/supprimerUser/Georges', headers=get_headers(client))
# assert rv.status_code == 200
#
#
# def test_getAllUsers(client):
# rv = client.get('/utilisateurs/auteursExistants', headers=get_headers(client))
# assert rv.status_code == 200
#
#
# def test_addMessage(client):
# response = client.get("/utilisateurs/checkUser?login=Charles")
# assert 200 == response.status_code
#
#
# def test_change_password(client):
# pass
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment