mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-17 19:53:21 +00:00
pedagogy: tests for uv creation
This commit is contained in:
parent
1172402166
commit
38f6c27983
@ -859,6 +859,18 @@ Welcome to the wiki page!
|
||||
start_date=timezone.now(),
|
||||
role=settings.SITH_CLUB_ROLES_ID["Board member"],
|
||||
).save()
|
||||
# Adding user tutu
|
||||
tutu = User(
|
||||
username="tutu",
|
||||
last_name="Tu",
|
||||
first_name="Tu",
|
||||
email="tutu@git.an",
|
||||
date_of_birth="1942-06-12",
|
||||
)
|
||||
tutu.set_password("plop")
|
||||
tutu.save()
|
||||
tutu.groups = [settings.SITH_GROUP_PEDAGOGY_ADMIN_ID]
|
||||
tutu.save()
|
||||
|
||||
# Adding subscription for sli
|
||||
s = Subscription(
|
||||
@ -897,6 +909,18 @@ Welcome to the wiki page!
|
||||
start=s.subscription_start,
|
||||
)
|
||||
s.save()
|
||||
# Tutu
|
||||
s = Subscription(
|
||||
member=tutu,
|
||||
subscription_type=default_subscription,
|
||||
payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0][0],
|
||||
)
|
||||
s.subscription_start = s.compute_start()
|
||||
s.subscription_end = s.compute_end(
|
||||
duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]["duration"],
|
||||
start=s.subscription_start,
|
||||
)
|
||||
s.save()
|
||||
|
||||
Selling(
|
||||
label=dcons.name,
|
||||
|
@ -23,5 +23,121 @@
|
||||
#
|
||||
|
||||
from django.test import TestCase
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.management import call_command
|
||||
|
||||
# Create your tests here.
|
||||
from core.models import User
|
||||
|
||||
from pedagogy.models import UV
|
||||
|
||||
|
||||
class UVCreation(TestCase):
|
||||
"""
|
||||
Test uv creation
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
call_command("populate")
|
||||
self.bibou = User.objects.filter(username="root").first()
|
||||
self.tutu = User.objects.filter(username="tutu").first()
|
||||
self.sli = User.objects.filter(username="sli").first()
|
||||
self.guy = User.objects.filter(username="guy").first()
|
||||
|
||||
@staticmethod
|
||||
def create_uv_template(user_id, code="IFC1", exclude_list=[]):
|
||||
uv = {
|
||||
"code": code,
|
||||
"author": user_id,
|
||||
"credit_type": "TM",
|
||||
"semester": "SPRING",
|
||||
"language": "FR",
|
||||
"credits": 3,
|
||||
"hours_CM": 10,
|
||||
"hours_TD": 28,
|
||||
"hours_TP": 0,
|
||||
"hours_THE": 37,
|
||||
"hours_TE": 0,
|
||||
"manager": "Gilles BERTRAND",
|
||||
"title": "Algorithmique et programmation : niveau I, initiés - partie I",
|
||||
"objectives": """* Introduction à l'algorithmique et à la programmation pour initiés.
|
||||
* Pratiques et développement en langage C.""",
|
||||
"program": """* Découverte des outils élémentaires utilisés pour écrire, compiler et exécuter un programme écrit en langage C
|
||||
* Règles de programmation : normes en cours, règles de présentation du code, commentaires
|
||||
* Initiation à l'algorithmique et découverte des bases du langage C :
|
||||
* les conditions
|
||||
* les boucles
|
||||
* les types de données
|
||||
* les tableaux à une dimension
|
||||
* manipulations des chaînes de caractères
|
||||
* les fonctions et procédures""",
|
||||
"skills": "* D'écrire un algorithme et de l'implémenter en C",
|
||||
"key_concepts": """* Algorithme
|
||||
* Variables scalaires et vectorielles
|
||||
* Structures alternatives, répétitives
|
||||
* Fonctions, procédures
|
||||
* Chaînes de caractères""",
|
||||
}
|
||||
for excluded in exclude_list:
|
||||
uv.pop(excluded)
|
||||
return uv
|
||||
|
||||
def test_create_uv_admin_success(self):
|
||||
self.client.login(username="root", password="plop")
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"), self.create_uv_template(self.bibou.id)
|
||||
)
|
||||
self.assertEquals(response.status_code, 302)
|
||||
self.assertTrue(UV.objects.filter(code="IFC1").exists())
|
||||
|
||||
def test_create_uv_pedagogy_admin_success(self):
|
||||
self.client.login(username="tutu", password="plop")
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"), self.create_uv_template(self.tutu.id)
|
||||
)
|
||||
self.assertEquals(response.status_code, 302)
|
||||
self.assertTrue(UV.objects.filter(code="IFC1").exists())
|
||||
|
||||
def test_create_uv_unauthorized_fail(self):
|
||||
# Test with anonymous user
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"), self.create_uv_template(0)
|
||||
)
|
||||
self.assertEquals(response.status_code, 403)
|
||||
|
||||
# Test with subscribed user
|
||||
self.client.login(username="sli", password="plop")
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"), self.create_uv_template(self.sli.id)
|
||||
)
|
||||
self.assertEquals(response.status_code, 403)
|
||||
|
||||
# Test with non subscribed user
|
||||
self.client.login(username="guy", password="plop")
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"), self.create_uv_template(self.guy.id)
|
||||
)
|
||||
self.assertEquals(response.status_code, 403)
|
||||
|
||||
# Check that the UV has never been created
|
||||
self.assertFalse(UV.objects.filter(code="IFC1").exists())
|
||||
|
||||
def test_create_uv_bad_request_fail(self):
|
||||
self.client.login(username="tutu", password="plop")
|
||||
|
||||
# Test with wrong user id (if someone cheats on the hidden input)
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"), self.create_uv_template(self.bibou.id)
|
||||
)
|
||||
self.assertNotEquals(response.status_code, 302)
|
||||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
# Remove a required field
|
||||
response = self.client.post(
|
||||
reverse("pedagogy:uv_create"),
|
||||
self.create_uv_template(self.tutu.id, exclude_list=["title"]),
|
||||
)
|
||||
self.assertNotEquals(response.status_code, 302)
|
||||
self.assertEquals(response.status_code, 200)
|
||||
|
||||
# Check that the UV hase never been created
|
||||
self.assertFalse(UV.objects.filter(code="IFC1").exists())
|
||||
|
Loading…
Reference in New Issue
Block a user