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
370f395f
Commit
370f395f
authored
Aug 27, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Correction d'une fonction dépréciée (update)
parent
520f210a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
328 additions
and
328 deletions
+328
-328
contenu_dao.py
modele/contenu_dao.py
+22
-22
test_flask_demande_publication.py
tests/test_flask_demande_publication.py
+164
-164
test_flask_en_cours.py
tests/test_flask_en_cours.py
+112
-112
test_flask_utilisateur.py
tests/test_flask_utilisateur.py
+30
-30
No files found.
modele/contenu_dao.py
View file @
370f395f
...
...
@@ -197,7 +197,7 @@ class ContenuDao:
# @param id_contenu le contenu à ajouter en tiers
# @param version la version dans laquelle le contenu a été pris
def
creer_tiers
(
self
,
auteur
,
id_contenu
,
version
):
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$push"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_contenu
)},
{
"version"
:
version
}]}})
self
.
incrementer_popularite
(
id_contenu
)
...
...
@@ -211,7 +211,7 @@ class ContenuDao:
## l'auteur 'renie' son contenu, qui reste disponible dans le panier de ceux qui le possédent
# @param auteur l'id du contenu à renier
def
dissocier_contenu
(
self
,
id_contenu
):
self
.
base_donnees
.
contenu
.
update
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"auteur"
:
"Aucun"
}})
self
.
base_donnees
.
contenu
.
update
_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"auteur"
:
"Aucun"
}})
## permet de, soit renier, soit supprimer définitivement un auteur (et le fichier de contenu associé)
# @param id_contenu l'id du contenu à supprimer
...
...
@@ -236,12 +236,12 @@ class ContenuDao:
# on distingue le cas ou une note a été donnée ou non
if
note
==
"-"
:
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$pull"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_tiers
)},
{
"version"
:
version
}]}})
else
:
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$pull"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_tiers
)},
{
"version"
:
version
},
{
"note"
:
int
(
note
)}]
...
...
@@ -425,25 +425,25 @@ class ContenuDao:
if
not
refuse
:
# on vire le précédent
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$pull"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_tiers
)},
{
"version"
:
nouvelle_version
-
1
}]}})
# et on ajoute la version maj
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$push"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_tiers
)},
{
"version"
:
nouvelle_version
}]}})
else
:
# on vire le précédent
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$pull"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_tiers
)},
{
"version"
:
nouvelle_version
-
1
}]}})
# et on ajoute la version maj
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$push"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_tiers
)},
{
"version"
:
str
(
nouvelle_version
-
1
)
+
'r'
}]}})
...
...
@@ -507,7 +507,7 @@ class ContenuDao:
ancien_chemin
=
self
.
get_chemin_du_contenu
(
id_contenu
)
# on modifie les tags
self
.
base_donnees
.
contenu
.
update
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"tags_fixes"
:
tags
}})
self
.
base_donnees
.
contenu
.
update
_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"tags_fixes"
:
tags
}})
# et le chemin du fichier
chemin_tags
=
'/'
.
join
(
tags
)
+
"/"
...
...
@@ -546,7 +546,7 @@ class ContenuDao:
# @param id_contenu l'id du contenu associé (potentiellement vide)
def
creer_tag_libre
(
self
,
auteur
,
tag
):
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$push"
:
{
"tags"
:
[{
"tag"
:
tag
},
{
"contenus"
:
[]}]}})
...
...
@@ -558,13 +558,13 @@ class ContenuDao:
# on récupère les tags
tags
=
self
.
base_donnees
.
utilisateur
.
find_one
({
"nom"
:
auteur
})[
"tags"
]
# on "vide" les tags (qu'on réinjectera)
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
[]}})
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
[]}})
for
tag
in
tags
:
if
tag
[
0
][
'tag'
]
==
mon_tag
:
tags
.
remove
(
tag
)
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
tags
}})
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
tags
}})
## Fonction permettant de dissocier un contenu d'un tag libre
# @param auteur l'auteur du nouveau tag
...
...
@@ -574,13 +574,13 @@ class ContenuDao:
# on récupère les tags
tags
=
self
.
base_donnees
.
utilisateur
.
find_one
({
"nom"
:
auteur
})[
"tags"
]
# on "vide" les tags (qu'on réinjectera)
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
[]}})
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
[]}})
# on parcourt chaque tag et on vire les mentions à id_contenu
for
tag
in
tags
:
if
tag
[
0
][
'tag'
]
==
mon_tag
:
tag
[
1
][
'contenus'
]
.
remove
(
ObjectId
(
id_contenu
))
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
tags
}})
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
tags
}})
## Fonction permettant d'associer un contenu à un tag libre
# @param auteur l'auteur du nouveau tag
...
...
@@ -590,7 +590,7 @@ class ContenuDao:
# on récupère les tags
tags
=
self
.
base_donnees
.
utilisateur
.
find_one
({
"nom"
:
auteur
})[
"tags"
]
# on "vide" les tags (qu'on réinjectera)
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
[]}})
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
[]}})
# on parcourt chaque tag et on vire les mentions à id_contenu
for
letag
in
tags
:
if
letag
[
0
][
'tag'
]
==
tag
:
...
...
@@ -598,7 +598,7 @@ class ContenuDao:
# print(letag[1]['contenu'], type(letag[1]['contenu']))
# for contenu_associe in letag[1]:
# print(contenu_associe)
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
tags
}})
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$set"
:
{
"tags"
:
tags
}})
## Fonction permettant de récupérer tous les tags libres d'un auteur
# @param auteur l'auteur du nouveau tag
...
...
@@ -632,13 +632,13 @@ class ContenuDao:
def
noterContenuTiers
(
self
,
id_contenu
,
version
,
auteur
,
note
):
# on vire le précédent
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$pull"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_contenu
)},
{
"version"
:
version
}]}})
# et on ajoute la version maj
self
.
base_donnees
.
utilisateur
.
update
({
"nom"
:
auteur
},
self
.
base_donnees
.
utilisateur
.
update
_one
({
"nom"
:
auteur
},
{
"$push"
:
{
"tiers"
:
[{
"contenu"
:
ObjectId
(
id_contenu
)},
{
"version"
:
version
},
...
...
@@ -685,10 +685,10 @@ class ContenuDao:
def
modifierMoyenneContenu
(
self
,
id_contenu
,
version
,
note
):
if
version
==
self
.
get_version_courante
(
id_contenu
):
versionEnCours
=
self
.
base_donnees
.
contenu
.
find_one
({
"_id"
:
ObjectId
(
id_contenu
)})[
"versionEnCours"
]
self
.
base_donnees
.
contenu
.
update
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"versionEnCours"
:
[]}})
self
.
base_donnees
.
contenu
.
update
_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"versionEnCours"
:
[]}})
versionEnCours
[
'note'
]
=
versionEnCours
[
'note'
]
+
note
versionEnCours
[
'nbreNotes'
]
=
versionEnCours
[
'nbreNotes'
]
+
1
self
.
base_donnees
.
contenu
.
update
({
"_id"
:
ObjectId
(
id_contenu
)},
self
.
base_donnees
.
contenu
.
update
_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"versionEnCours"
:
versionEnCours
}})
return
json
.
dumps
([
versionEnCours
[
'note'
],
versionEnCours
[
'nbreNotes'
]])
...
...
@@ -697,10 +697,10 @@ class ContenuDao:
else
:
print
(
"Non, là"
)
contenus
=
self
.
base_donnees
.
contenu
.
find_one
({
"_id"
:
ObjectId
(
id_contenu
)})[
"historique"
]
self
.
base_donnees
.
contenu
.
update
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"historique"
:
[]}})
self
.
base_donnees
.
contenu
.
update
_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"historique"
:
[]}})
for
cont
in
contenus
:
if
cont
[
'numero'
]
==
version
:
cont
[
'note'
]
=
cont
[
'note'
]
+
note
cont
[
'nbreNotes'
]
=
cont
[
'nbreNotes'
]
+
1
self
.
base_donnees
.
contenu
.
update
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"historique"
:
contenus
}})
self
.
base_donnees
.
contenu
.
update
_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"historique"
:
contenus
}})
return
json
.
dumps
([
cont
[
'note'
],
cont
[
'nbreNotes'
]])
tests/test_flask_demande_publication.py
View file @
370f395f
# from testUtils import *
# from test_flask_en_cours import *
#
#
# # def test_creer_demande_publication_acceptee(client):
# # # 1. login créée un contenu
# # login = creerUtilisateurRandom(client)
# # id = creerContenuRandom(client, login)
# #
# # # 2. login2 le met dans ses tiers
# # loginDeux = creerUtilisateurRandom(client)
# # data = {"id_tiers": json.dumps(id), "auteur": loginDeux, "version": 1}
# # rv = client.patch("/contenus/ajouterTiers", json=data, headers=get_headers(client))
# # assert rv.status_code == 201
# #
# # # 3. login2 modifie son contenu tiers
# # data = {"auteur": loginDeux, "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
# # id_en_cours = json.loads(rv.data)["_id"]
# #
# # # 3. et y ajoute un nouveau titre
# # data = {"titre": "nouveauTitreContenu", "id_contenu_en_cours": json.dumps(id_en_cours)}
# # rv = client.patch("/en_cours/changerTitre", json=data, headers=get_headers(client))
# # assert rv.status_code == 201
# #
# # # loginDeux fait une demande de publication sur le contenu en cours qui vient d'être créé
# # data = {"id_contenu": json.dumps(id), "id_contenu_en_cours": json.dumps(id_en_cours), "auteur_en_cours": loginDeux,
# # "version": 1}
# # rv = client.post("/demande_pub/demandePublication", json=data, headers=get_headers(client))
# # assert rv.status_code == 201
# # id_publication = json.loads(rv.data)["_id"]
# #
# # # On controle les demandes de publication recues de login
# # rv = client.get("/demande_pub/demandePublication/" + login + "/False", headers=get_headers(client))
# # assert rv.status_code == 200
# # assert len(json.loads(rv.data)) == 1
# #
# # # On contrôle les demandes de publication proposées de loginDeux
# # rv = client.get("/demande_pub/demandePublication/" + loginDeux + "/True", headers=get_headers(client))
# # assert rv.status_code == 200
# # assert len(json.loads(rv.data)) == 1
# #
# # # Charles accepte la demande de publication
# # data = {"id_publication": json.dumps(id_publication), "reponse": 'o', "auteur": loginDeux}
# # rv = client.patch("/contenus/gererDemandePub", json=data, headers=get_headers(client))
# # assert rv.status_code == 200
# #
# # # On supprime le tiers chez LoginDeux
# # rv = client.delete("/contenus/deleteTiers?id_tiers=" + json.dumps(id) + "&auteur=" + loginDeux + "¬e=-",
# # headers=get_headers(client))
# # assert rv.status_code == 200
# #
# # supprimer_demande_publication(client, id, id_publication)
# # supprimerUtilisateur(client, login)
# # supprimerUtilisateur(client, loginDeux)
#
#
# def test_creer_demande_publication_refusee_creation_en_cours_refuse(client):
from
testUtils
import
*
from
test_flask_en_cours
import
*
# def test_creer_demande_publication_acceptee(client):
# # 1. login créée un contenu
# login = creerUtilisateurRandom(client)
# id = creerContenuRandom(client, login)
#
# print("id test_creer_demande_publication_refusee_creation_en_cours_refuse : ", id)
#
# # 2. login2 le met dans ses tiers
# loginDeux = creerUtilisateurRandom(client)
# data = {"id_tiers": json.dumps(id), "auteur": loginDeux, "version": 1}
...
...
@@ -99,116 +42,173 @@
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == 1
#
# # Charles
refus
e la demande de publication
# data = {"id_publication": json.dumps(id_publication), "reponse": '
n', "auteur": login
}
# # Charles
accept
e la demande de publication
# data = {"id_publication": json.dumps(id_publication), "reponse": '
o', "auteur": loginDeux
}
# rv = client.patch("/contenus/gererDemandePub", json=data, headers=get_headers(client))
# assert rv.status_code == 200
#
# # Jacques créée un en-cours refuse
# data = {"id_contenu_en_cours": json.dumps(id_en_cours)}
# rv = client.patch("/en_cours/newEnCoursRefuse", json=data, headers=get_headers(client))
# assert rv.status_code == 201
#
# rv = client.delete("/en_cours/supprimerEnCoursParId/" + json.dumps(id_en_cours), headers=get_headers(client))
# assert rv.status_code == 200
#
# # On supprime le tiers chez LoginDeux
# rv = client.delete("/contenus/deleteTiers?id_tiers=" + json.dumps(id) + "&auteur=" + loginDeux + "¬e=-",
# headers=get_headers(client))
# assert rv.status_code == 200
#
# supprimer_demande_publication(client, id, id_publication)
#
# supprimerUtilisateur(client, login)
# supprimerUtilisateur(client, loginDeux)
#
#
# def test_creer_demande_publication_refusee_creation_nouveau_contenu(client):
# # 1. login créée un contenu
# login = creerUtilisateurRandom(client)
# id = creerContenuRandom(client, login)
#
# print("id test_creer_demande_publication_refusee_creation_nouveau_contenu : ", id)
#
# # 2. login2 le met dans ses tiers
# loginDeux = creerUtilisateurRandom(client)
# data = {"id_tiers": json.dumps(id), "auteur": loginDeux, "version": 1}
# rv = client.patch("/contenus/ajouterTiers", json=data, headers=get_headers(client))
# assert rv.status_code == 201
#
# # 3. login2 modifie son contenu tiers
# data = {"auteur": loginDeux, "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
# id_en_cours = json.loads(rv.data)["_id"]
#
# # 3. et y ajoute un nouveau titre
# data = {"titre": "nouveauTitreContenu", "id_contenu_en_cours": json.dumps(id_en_cours)}
# rv = client.patch("/en_cours/changerTitre", json=data, headers=get_headers(client))
# assert rv.status_code == 201
#
# # loginDeux fait une demande de publication sur le contenu en cours qui vient d'être créé
# data = {"id_contenu": json.dumps(id), "id_contenu_en_cours": json.dumps(id_en_cours), "auteur_en_cours": loginDeux,
# "version": 1}
# rv = client.post("/demande_pub/demandePublication", json=data, headers=get_headers(client))
# assert rv.status_code == 201
# id_publication = json.loads(rv.data)["_id"]
#
# # On controle les demandes de publication recues de login
# rv = client.get("/demande_pub/demandePublication/" + login + "/False", headers=get_headers(client))
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == 1
#
# # On contrôle les demandes de publication proposées de loginDeux
# rv = client.get("/demande_pub/demandePublication/" + loginDeux + "/True", headers=get_headers(client))
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == 1
#
# # Charles refuse la demande de publication
# data = {"id_publication": json.dumps(id_publication), "reponse": 'n', "auteur": login}
# rv = client.patch("/contenus/gererDemandePub", json=data, headers=get_headers(client))
# assert rv.status_code == 200
#
# # Du coup loginDeux doit avoir un contenu dans son panier
# rv = client.get("/contenus/getContenuPanier/" + loginDeux + "?perso=True&tiers=True&en_cours=True",
# headers=get_headers(client))
# assert rv.status_code == 200
# nombrePanier = len(json.loads(rv.data))
#
# # Jacques créée un nouveau contenu
# data = {"id_demande_pub": json.dumps(id_publication), "auteur": loginDeux}
# rv = client.post("/contenus/newContenu", json=data, headers=get_headers(client))
# assert rv.status_code == 201
#
# id_nvo_perso = json.loads(rv.data)["_id"]
#
# # Du coup loginDeux doit avoir un contenu de plus dans son panier
# rv = client.get("/contenus/getContenuPanier/" + loginDeux + "?perso=True&tiers=True&en_cours=True",
# headers=get_headers(client))
# assert rv.status_code == 200
# assert len(json.loads(rv.data)) == nombrePanier + 1
#
# # rv = client.delete("/en_cours/supprimerEnCoursParId/" + json.dumps(id_en_cours), headers=get_headers(client))
# # assert rv.status_code == 200
#
# # On supprime le tiers chez LoginDeux
# rv = client.delete("/contenus/deleteTiers?id_tiers=" + json.dumps(id) + "&auteur=" + loginDeux + "¬e=-",
# headers=get_headers(client))
# assert rv.status_code == 200
#
# rv = client.delete("/contenus/deletePerso/" + json.dumps(id_nvo_perso), headers=get_headers(client))
# assert rv.status_code == 200
#
# supprimer_demande_publication(client, id, id_publication)
#
# supprimerUtilisateur(client, login)
# supprimerUtilisateur(client, loginDeux)
#
#
# def supprimer_demande_publication(client, id, id_publication):
# rv = client.delete("/contenus/deletePerso/" + json.dumps(id), headers=get_headers(client))
# assert rv.status_code == 200
#
# rv = client.delete("/demande_pub/demandePublication/" + json.dumps(id_publication), headers=get_headers(client))
# assert rv.status_code == 200
def
test_creer_demande_publication_refusee_creation_en_cours_refuse
(
client
):
# 1. login créée un contenu
login
=
creerUtilisateurRandom
(
client
)
id
=
creerContenuRandom
(
client
,
login
)
print
(
"id test_creer_demande_publication_refusee_creation_en_cours_refuse : "
,
id
)
# 2. login2 le met dans ses tiers
loginDeux
=
creerUtilisateurRandom
(
client
)
data
=
{
"id_tiers"
:
json
.
dumps
(
id
),
"auteur"
:
loginDeux
,
"version"
:
1
}
rv
=
client
.
patch
(
"/contenus/ajouterTiers"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# 3. login2 modifie son contenu tiers
data
=
{
"auteur"
:
loginDeux
,
"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
id_en_cours
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# 3. et y ajoute un nouveau titre
data
=
{
"titre"
:
"nouveauTitreContenu"
,
"id_contenu_en_cours"
:
json
.
dumps
(
id_en_cours
)}
rv
=
client
.
patch
(
"/en_cours/changerTitre"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# loginDeux fait une demande de publication sur le contenu en cours qui vient d'être créé
data
=
{
"id_contenu"
:
json
.
dumps
(
id
),
"id_contenu_en_cours"
:
json
.
dumps
(
id_en_cours
),
"auteur_en_cours"
:
loginDeux
,
"version"
:
1
}
rv
=
client
.
post
(
"/demande_pub/demandePublication"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
id_publication
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# On controle les demandes de publication recues de login
rv
=
client
.
get
(
"/demande_pub/demandePublication/"
+
login
+
"/False"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
len
(
json
.
loads
(
rv
.
data
))
==
1
# On contrôle les demandes de publication proposées de loginDeux
rv
=
client
.
get
(
"/demande_pub/demandePublication/"
+
loginDeux
+
"/True"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
len
(
json
.
loads
(
rv
.
data
))
==
1
# Charles refuse la demande de publication
data
=
{
"id_publication"
:
json
.
dumps
(
id_publication
),
"reponse"
:
'n'
,
"auteur"
:
login
}
rv
=
client
.
patch
(
"/contenus/gererDemandePub"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
# Jacques créée un en-cours refuse
data
=
{
"id_contenu_en_cours"
:
json
.
dumps
(
id_en_cours
)}
rv
=
client
.
patch
(
"/en_cours/newEnCoursRefuse"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
rv
=
client
.
delete
(
"/en_cours/supprimerEnCoursParId/"
+
json
.
dumps
(
id_en_cours
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
# On supprime le tiers chez LoginDeux
rv
=
client
.
delete
(
"/contenus/deleteTiers?id_tiers="
+
json
.
dumps
(
id
)
+
"&auteur="
+
loginDeux
+
"¬e=-"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
supprimer_demande_publication
(
client
,
id
,
id_publication
)
supprimerUtilisateur
(
client
,
login
)
supprimerUtilisateur
(
client
,
loginDeux
)
def
test_creer_demande_publication_refusee_creation_nouveau_contenu
(
client
):
# 1. login créée un contenu
login
=
creerUtilisateurRandom
(
client
)
id
=
creerContenuRandom
(
client
,
login
)
print
(
"id test_creer_demande_publication_refusee_creation_nouveau_contenu : "
,
id
)
# 2. login2 le met dans ses tiers
loginDeux
=
creerUtilisateurRandom
(
client
)
data
=
{
"id_tiers"
:
json
.
dumps
(
id
),
"auteur"
:
loginDeux
,
"version"
:
1
}
rv
=
client
.
patch
(
"/contenus/ajouterTiers"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# 3. login2 modifie son contenu tiers
data
=
{
"auteur"
:
loginDeux
,
"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
id_en_cours
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# 3. et y ajoute un nouveau titre
data
=
{
"titre"
:
"nouveauTitreContenu"
,
"id_contenu_en_cours"
:
json
.
dumps
(
id_en_cours
)}
rv
=
client
.
patch
(
"/en_cours/changerTitre"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
# loginDeux fait une demande de publication sur le contenu en cours qui vient d'être créé
data
=
{
"id_contenu"
:
json
.
dumps
(
id
),
"id_contenu_en_cours"
:
json
.
dumps
(
id_en_cours
),
"auteur_en_cours"
:
loginDeux
,
"version"
:
1
}
rv
=
client
.
post
(
"/demande_pub/demandePublication"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
id_publication
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# On controle les demandes de publication recues de login
rv
=
client
.
get
(
"/demande_pub/demandePublication/"
+
login
+
"/False"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
len
(
json
.
loads
(
rv
.
data
))
==
1
# On contrôle les demandes de publication proposées de loginDeux
rv
=
client
.
get
(
"/demande_pub/demandePublication/"
+
loginDeux
+
"/True"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
len
(
json
.
loads
(
rv
.
data
))
==
1
# Charles refuse la demande de publication
data
=
{
"id_publication"
:
json
.
dumps
(
id_publication
),
"reponse"
:
'n'
,
"auteur"
:
login
}
rv
=
client
.
patch
(
"/contenus/gererDemandePub"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
# Du coup loginDeux doit avoir un contenu dans son panier
rv
=
client
.
get
(
"/contenus/getContenuPanier/"
+
loginDeux
+
"?perso=True&tiers=True&en_cours=True"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
nombrePanier
=
len
(
json
.
loads
(
rv
.
data
))
# Jacques créée un nouveau contenu
data
=
{
"id_demande_pub"
:
json
.
dumps
(
id_publication
),
"auteur"
:
loginDeux
}
rv
=
client
.
post
(
"/contenus/newContenu"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
201
id_nvo_perso
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# Du coup loginDeux doit avoir un contenu de plus dans son panier
rv
=
client
.
get
(
"/contenus/getContenuPanier/"
+
loginDeux
+
"?perso=True&tiers=True&en_cours=True"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
len
(
json
.
loads
(
rv
.
data
))
==
nombrePanier
+
1
# rv = client.delete("/en_cours/supprimerEnCoursParId/" + json.dumps(id_en_cours), headers=get_headers(client))
# assert rv.status_code == 200
# On supprime le tiers chez LoginDeux
rv
=
client
.
delete
(
"/contenus/deleteTiers?id_tiers="
+
json
.
dumps
(
id
)
+
"&auteur="
+
loginDeux
+
"¬e=-"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
rv
=
client
.
delete
(
"/contenus/deletePerso/"
+
json
.
dumps
(
id_nvo_perso
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
supprimer_demande_publication
(
client
,
id
,
id_publication
)
supprimerUtilisateur
(
client
,
login
)
supprimerUtilisateur
(
client
,
loginDeux
)
def
supprimer_demande_publication
(
client
,
id
,
id_publication
):
rv
=
client
.
delete
(
"/contenus/deletePerso/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
rv
=
client
.
delete
(
"/demande_pub/demandePublication/"
+
json
.
dumps
(
id_publication
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
tests/test_flask_en_cours.py
View file @
370f395f
#
#
from testUtils import *
#
#
#
def supprimer_les_contenus(client, id, id_en_cours):
#
# suppression du contenu en_cours
#
#
rv = client.delete("/en_cours/supprimerEnCoursParId/" + json.dumps(id_en_cours), headers=get_headers(client))
#
assert rv.status_code == 200
#
#
# suppression du contenu "intial"
#
rv = client.delete("/contenus/deletePerso/" + json.dumps(id), headers=get_headers(client))
#
assert rv.status_code == 200
#
#
#
def test_en_cours(client):
#
# on récupère l'id du contenu en cours créé
#
# Dans un premier temps, créer un contenu
#
login = creerUtilisateurRandom(client)
#
id = creerContenuRandom(client, login)
#
#
#
data = {"auteur": login, "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
#
#
id_en_cours = json.loads(rv.data)["_id"]
#
#
# récupération du texte (avant modif)
#
rv = client.get("/en_cours/getTexteContenuEnCours/" + json.dumps(id_en_cours), 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", "nouveau_titre": "nouveauTitreContenu"}
#
rv = client.patch("/contenus/changerTexte/" + json.dumps(id_en_cours), 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_en_cours), headers=get_headers(client))
#
assert rv.status_code == 200
#
assert "Nouveau Texte du contenu" == json.loads(rv.data)
#
#
supprimer_les_contenus(client, id, id_en_cours)
#
supprimerUtilisateur(client, login)
#
#
#
def test_en_cours_provenance_tiers(client):
#
#
login = creerUtilisateurRandom(client)
#
id = creerContenuRandom(client, login)
#
#
#
loginDeux = creerUtilisateurRandom(client)
#
# création d'un tiers
#
data = {"id_tiers": json.dumps(id), "auteur": loginDeux, "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": loginDeux, "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
#
#
id_en_cours = json.loads(rv.data)["_id"]
#
#
supprimer_les_contenus(client, id, id_en_cours)
#
rv = client.delete("/contenus/deleteTiers?id_tiers=" + json.dumps(id) + "&auteur=" + loginDeux + "¬e=-",
#
headers=get_headers(client))
#
assert rv.status_code == 200
#
#
supprimerUtilisateur(client, login)
#
supprimerUtilisateur(client, loginDeux)
#
#
#
def test_en_cours_directement_valide(client):
#
# on récupère l'id du contenu en cours créé
#
# Dans un premier temps, créer un contenu
#
login = creerUtilisateurRandom(client)
#
id = creerContenuRandom(client, login)
#
#
#
data = {"auteur": login, "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
#
#
id_en_cours = json.loads(rv.data)["_id"]
#
#
# modification du texte du contenu en cours
#
data = {"nouveau_texte": "Nouveau Texte du contenu", "nouveau_titre": "nouveauTitreContenu"}
#
rv = client.patch("/contenus/changerTexte/" + json.dumps(id_en_cours), json=data, headers=get_headers(client))
#
assert rv.status_code == 200
#
#
data = {"auteur": "", "id_contenu_en_cours": json.dumps(id_en_cours)}
#
rv = client.patch("/contenus/majContenu", json=data, headers=get_headers(client))
#
assert rv.status_code == 200
#
#
# test du texte sur le contenu d'id 'id'
#
rv = client.get("/contenus/getTexteContenu/" + json.dumps(id), headers=get_headers(client))
#
assert rv.status_code == 200
#
assert "Nouveau Texte du contenu" == json.loads(rv.data)
#
#
#
# suppression du contenu "intial"
#
rv = client.delete("/contenus/deletePerso/" + json.dumps(id), headers=get_headers(client))
#
assert rv.status_code == 200
#
#
supprimerUtilisateur(client, login)
#
from
testUtils
import
*
def
supprimer_les_contenus
(
client
,
id
,
id_en_cours
):
# suppression du contenu en_cours
rv
=
client
.
delete
(
"/en_cours/supprimerEnCoursParId/"
+
json
.
dumps
(
id_en_cours
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
# suppression du contenu "intial"
rv
=
client
.
delete
(
"/contenus/deletePerso/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
def
test_en_cours
(
client
):
# on récupère l'id du contenu en cours créé
# Dans un premier temps, créer un contenu
login
=
creerUtilisateurRandom
(
client
)
id
=
creerContenuRandom
(
client
,
login
)
data
=
{
"auteur"
:
login
,
"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
id_en_cours
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# récupération du texte (avant modif)
rv
=
client
.
get
(
"/en_cours/getTexteContenuEnCours/"
+
json
.
dumps
(
id_en_cours
),
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"
,
"nouveau_titre"
:
"nouveauTitreContenu"
}
rv
=
client
.
patch
(
"/contenus/changerTexte/"
+
json
.
dumps
(
id_en_cours
),
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_en_cours
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
"Nouveau Texte du contenu"
==
json
.
loads
(
rv
.
data
)
supprimer_les_contenus
(
client
,
id
,
id_en_cours
)
supprimerUtilisateur
(
client
,
login
)
def
test_en_cours_provenance_tiers
(
client
):
login
=
creerUtilisateurRandom
(
client
)
id
=
creerContenuRandom
(
client
,
login
)
loginDeux
=
creerUtilisateurRandom
(
client
)
# création d'un tiers
data
=
{
"id_tiers"
:
json
.
dumps
(
id
),
"auteur"
:
loginDeux
,
"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"
:
loginDeux
,
"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
id_en_cours
=
json
.
loads
(
rv
.
data
)[
"_id"
]
supprimer_les_contenus
(
client
,
id
,
id_en_cours
)
rv
=
client
.
delete
(
"/contenus/deleteTiers?id_tiers="
+
json
.
dumps
(
id
)
+
"&auteur="
+
loginDeux
+
"¬e=-"
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
supprimerUtilisateur
(
client
,
login
)
supprimerUtilisateur
(
client
,
loginDeux
)
def
test_en_cours_directement_valide
(
client
):
# on récupère l'id du contenu en cours créé
# Dans un premier temps, créer un contenu
login
=
creerUtilisateurRandom
(
client
)
id
=
creerContenuRandom
(
client
,
login
)
data
=
{
"auteur"
:
login
,
"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
id_en_cours
=
json
.
loads
(
rv
.
data
)[
"_id"
]
# modification du texte du contenu en cours
data
=
{
"nouveau_texte"
:
"Nouveau Texte du contenu"
,
"nouveau_titre"
:
"nouveauTitreContenu"
}
rv
=
client
.
patch
(
"/contenus/changerTexte/"
+
json
.
dumps
(
id_en_cours
),
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
data
=
{
"auteur"
:
""
,
"id_contenu_en_cours"
:
json
.
dumps
(
id_en_cours
)}
rv
=
client
.
patch
(
"/contenus/majContenu"
,
json
=
data
,
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
# test du texte sur le contenu d'id 'id'
rv
=
client
.
get
(
"/contenus/getTexteContenu/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
assert
"Nouveau Texte du contenu"
==
json
.
loads
(
rv
.
data
)
# suppression du contenu "intial"
rv
=
client
.
delete
(
"/contenus/deletePerso/"
+
json
.
dumps
(
id
),
headers
=
get_headers
(
client
))
assert
rv
.
status_code
==
200
supprimerUtilisateur
(
client
,
login
)
tests/test_flask_utilisateur.py
View file @
370f395f
#
from testUtils import *
#
#
#
def test_new_user(client):
#
login = genererRandom()
#
data = {"login": login}
#
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/' + login, 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_isUserExistant(client):
#
login = creerUtilisateurRandom(client)
#
response = client.get("/utilisateurs/checkUser?login=" + login)
#
assert 200 == response.status_code
#
response = client.get("/utilisateurs/checkUser?login=" + genererRandom())
#
assert 400 == response.status_code
#
client.delete('/utilisateurs/supprimerUser/' + login, headers=get_headers(client))
#
#
#
def test_change_password(client):
#
pass
from
testUtils
import
*
def
test_new_user
(
client
):
login
=
genererRandom
()
data
=
{
"login"
:
login
}
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/'
+
login
,
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_isUserExistant
(
client
):
login
=
creerUtilisateurRandom
(
client
)
response
=
client
.
get
(
"/utilisateurs/checkUser?login="
+
login
)
assert
200
==
response
.
status_code
response
=
client
.
get
(
"/utilisateurs/checkUser?login="
+
genererRandom
())
assert
400
==
response
.
status_code
client
.
delete
(
'/utilisateurs/supprimerUser/'
+
login
,
headers
=
get_headers
(
client
))
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