Commit 586eae90 authored by Jérémie Passerat's avatar Jérémie Passerat

Tests user, contenu finis et en_cours commencés

parent a668f5b1
......@@ -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_tiers(Resource):
class SupprimerTiers(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)
......
......@@ -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()
......
......@@ -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, nomUtilisateur):
def ajouter_utilisateur(self, nom_utilisateur):
self.base_donnees.utilisateur.insert_one(
{"nom": nomUtilisateur, "note": randrange(0, 10, 1), "tiers": []})
{"nom": nom_utilisateur, "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})
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
# 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
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
# 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment