Tests (!!)

This commit is contained in:
Ludovic Stephan 2019-05-24 18:01:04 +02:00
parent 52521e89a6
commit f12370a6cd

View file

@ -8,6 +8,8 @@ from django.test import Client, TestCase
from django.urls import reverse
from django.utils import timezone
from .. import KFET_DELETED_TRIGRAMME
from ..auth import KFET_GENERIC_TRIGRAMME
from ..config import kfet_config
from ..models import (
Account,
@ -340,6 +342,61 @@ class AccountUpdateViewTests(ViewTestCaseMixin, TestCase):
self.assertForbiddenKfet(r)
class AccountDeleteViewTests(ViewTestCaseMixin, TestCase):
url_name = "kfet.account.delete"
url_kwargs = {"trigramme": "001"}
url_expected = "/k-fet/accounts/001/delete"
auth_user = "team1"
auth_forbidden = [None, "user", "team"]
http_methods = ["GET", "POST"]
with_liq = True
def get_users_extra(self):
return {
"user1": create_user("user1", "001"),
"team1": create_team("team1", "101", perms=["kfet.delete_account"]),
"trez": create_user("trez", "#13"),
}
def test_get_redirects(self):
r = self.client.get(self.url)
self.assertRedirects(r, reverse("kfet.account.read", kwargs=self.url_kwargs))
def test_post_ok(self):
r = self.client.post(self.url, {})
self.assertRedirects(r, reverse("kfet.account"))
with self.assertRaises(Account.DoesNotExist):
self.accounts["user1"].refresh_from_db()
def test_protected_accounts(self):
for trigramme in ["LIQ", "#13", KFET_GENERIC_TRIGRAMME, KFET_DELETED_TRIGRAMME]:
if Account.objects.get(trigramme=trigramme).readable:
expected_code = 200
else:
expected_code = 403
r = self.client.post(
reverse(self.url_name, kwargs={"trigramme": trigramme}), {}
)
self.assertRedirects(
r,
reverse("kfet.account.read", kwargs={"trigramme": trigramme}),
target_status_code=expected_code,
)
# Devrait être redondant avec le précédent, mais on sait jamais
self.assertTrue(Account.objects.filter(trigramme=trigramme).exists())
def test_nonempty_accounts(self):
self.accounts["user1"].balance = 1
self.accounts["user1"].save()
r = self.client.post(self.url, {})
self.assertRedirects(r, reverse("kfet.account.read", kwargs=self.url_kwargs))
# Shouldn't throw an error
self.accounts["user1"].refresh_from_db()
class AccountGroupListViewTests(ViewTestCaseMixin, TestCase):
url_name = "kfet.account.group"
url_expected = "/k-fet/accounts/groups"