Move group-related views tests to kfetauth tests
This commit is contained in:
parent
94f21c062a
commit
94ab754f82
2 changed files with 151 additions and 145 deletions
|
@ -10,6 +10,8 @@ from django.core.urlresolvers import reverse
|
||||||
from django.test import RequestFactory, TestCase
|
from django.test import RequestFactory, TestCase
|
||||||
|
|
||||||
from kfet.models import Account
|
from kfet.models import Account
|
||||||
|
from kfet.tests.testcases import ViewTestCaseMixin
|
||||||
|
from kfet.tests.utils import create_team, get_perms
|
||||||
|
|
||||||
from . import KFET_GENERIC_TRIGRAMME, KFET_GENERIC_USERNAME
|
from . import KFET_GENERIC_TRIGRAMME, KFET_GENERIC_USERNAME
|
||||||
from .backends import AccountBackend, GenericBackend
|
from .backends import AccountBackend, GenericBackend
|
||||||
|
@ -389,6 +391,154 @@ class GenericLoginViewTests(TestCase):
|
||||||
self.assertEqual(r.wsgi_request.path, '/k-fet/')
|
self.assertEqual(r.wsgi_request.path, '/k-fet/')
|
||||||
|
|
||||||
|
|
||||||
|
class GroupListViewTests(ViewTestCaseMixin, TestCase):
|
||||||
|
url_name = 'kfet.group'
|
||||||
|
url_expected = '/k-fet/groupes/'
|
||||||
|
|
||||||
|
auth_user = 'team1'
|
||||||
|
auth_forbidden = [None, 'user', 'team']
|
||||||
|
|
||||||
|
def get_users_extra(self):
|
||||||
|
return {
|
||||||
|
'team1': create_team('team1', '101', perms=[
|
||||||
|
'kfetauth.view_group']),
|
||||||
|
}
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
self.group1 = Group.objects.create(name='K-Fêt - Group1')
|
||||||
|
self.group2 = Group.objects.create(name='K-Fêt - Group2')
|
||||||
|
|
||||||
|
def test_ok(self):
|
||||||
|
r = self.client.get(self.url)
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
r.context['groups'],
|
||||||
|
map(repr, [self.group1, self.group2]),
|
||||||
|
ordered=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class GroupCreateViewTests(ViewTestCaseMixin, TestCase):
|
||||||
|
url_name = 'kfet.group.create'
|
||||||
|
url_expected = '/k-fet/groupes/nouveau/'
|
||||||
|
|
||||||
|
http_methods = ['GET', 'POST']
|
||||||
|
|
||||||
|
auth_user = 'team1'
|
||||||
|
auth_forbidden = [None, 'user', 'team']
|
||||||
|
|
||||||
|
def get_users_extra(self):
|
||||||
|
return {
|
||||||
|
'team1': create_team('team1', '101', perms=['kfetauth.add_group']),
|
||||||
|
}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def post_data(self):
|
||||||
|
return {
|
||||||
|
'name': 'The Group',
|
||||||
|
'permissions': [
|
||||||
|
str(self.perms['kfet.is_team'].pk),
|
||||||
|
str(self.perms['kfetauth.add_group'].pk),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
self.perms = get_perms(
|
||||||
|
'kfet.is_team',
|
||||||
|
'kfetauth.add_group',
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_get_ok(self):
|
||||||
|
r = self.client.get(self.url)
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
|
||||||
|
def test_post_ok(self):
|
||||||
|
r = self.client.post(self.url, self.post_data)
|
||||||
|
self.assertRedirects(
|
||||||
|
r, reverse('kfet.group'),
|
||||||
|
fetch_redirect_response=False, # Requires `kfetauth.view_group`.
|
||||||
|
)
|
||||||
|
|
||||||
|
group = Group.objects.get(name='The Group')
|
||||||
|
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
group.permissions.all(),
|
||||||
|
map(repr, [
|
||||||
|
self.perms['kfet.is_team'],
|
||||||
|
self.perms['kfetauth.add_group'],
|
||||||
|
]),
|
||||||
|
ordered=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class GroupUpdateViewTests(ViewTestCaseMixin, TestCase):
|
||||||
|
url_name = 'kfet.group.update'
|
||||||
|
|
||||||
|
http_methods = ['GET', 'POST']
|
||||||
|
|
||||||
|
auth_user = 'team1'
|
||||||
|
auth_forbidden = [None, 'user', 'team']
|
||||||
|
|
||||||
|
@property
|
||||||
|
def url_kwargs(self):
|
||||||
|
return {'pk': self.group.pk}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def url_expected(self):
|
||||||
|
return '/k-fet/groupes/{}/edition/'.format(self.group.pk)
|
||||||
|
|
||||||
|
def get_users_extra(self):
|
||||||
|
return {
|
||||||
|
'team1': create_team('team1', '101', perms=[
|
||||||
|
'kfetauth.change_group']),
|
||||||
|
}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def post_data(self):
|
||||||
|
return {
|
||||||
|
'name': 'The Group',
|
||||||
|
'permissions': [
|
||||||
|
str(self.perms['kfet.is_team'].pk),
|
||||||
|
str(self.perms['kfetauth.change_group'].pk),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
self.perms = get_perms(
|
||||||
|
'kfet.is_team',
|
||||||
|
'kfetauth.change_group',
|
||||||
|
)
|
||||||
|
self.group = Group.objects.create(name='K-Fêt - Group')
|
||||||
|
self.group.permissions = self.perms.values()
|
||||||
|
|
||||||
|
def test_get_ok(self):
|
||||||
|
r = self.client.get(self.url)
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
|
||||||
|
def test_post_ok(self):
|
||||||
|
r = self.client.post(self.url, self.post_data)
|
||||||
|
self.assertRedirects(
|
||||||
|
r, reverse('kfet.group'),
|
||||||
|
fetch_redirect_response=False, # Requires `kfetauth.view_group`.
|
||||||
|
)
|
||||||
|
|
||||||
|
self.group.refresh_from_db()
|
||||||
|
|
||||||
|
self.assertEqual(self.group.name, 'The Group')
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
self.group.permissions.all(),
|
||||||
|
map(repr, [
|
||||||
|
self.perms['kfet.is_team'],
|
||||||
|
self.perms['kfetauth.change_group'],
|
||||||
|
]),
|
||||||
|
ordered=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Temporary authentication
|
# Temporary authentication
|
||||||
#
|
#
|
||||||
|
|
|
@ -7,8 +7,6 @@ from django.core.urlresolvers import reverse
|
||||||
from django.test import Client, TestCase
|
from django.test import Client, TestCase
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from kfet.auth.models import Group
|
|
||||||
|
|
||||||
from ..config import kfet_config
|
from ..config import kfet_config
|
||||||
from ..models import (
|
from ..models import (
|
||||||
Account, Article, ArticleCategory, Checkout, CheckoutStatement, Inventory,
|
Account, Article, ArticleCategory, Checkout, CheckoutStatement, Inventory,
|
||||||
|
@ -16,7 +14,7 @@ from ..models import (
|
||||||
SupplierArticle, Transfer, TransferGroup,
|
SupplierArticle, Transfer, TransferGroup,
|
||||||
)
|
)
|
||||||
from .testcases import ViewTestCaseMixin
|
from .testcases import ViewTestCaseMixin
|
||||||
from .utils import create_team, create_user, get_perms
|
from .utils import create_team, create_user
|
||||||
|
|
||||||
|
|
||||||
class AccountListViewTests(ViewTestCaseMixin, TestCase):
|
class AccountListViewTests(ViewTestCaseMixin, TestCase):
|
||||||
|
@ -336,148 +334,6 @@ class AccountUpdateViewTests(ViewTestCaseMixin, TestCase):
|
||||||
self.assertForbiddenKfet(r)
|
self.assertForbiddenKfet(r)
|
||||||
|
|
||||||
|
|
||||||
class AccountGroupListViewTests(ViewTestCaseMixin, TestCase):
|
|
||||||
url_name = 'kfet.group'
|
|
||||||
url_expected = '/k-fet/groupes/'
|
|
||||||
|
|
||||||
auth_user = 'team1'
|
|
||||||
auth_forbidden = [None, 'user', 'team']
|
|
||||||
|
|
||||||
def get_users_extra(self):
|
|
||||||
return {
|
|
||||||
'team1': create_team('team1', '101', perms=[
|
|
||||||
'kfetauth.view_group']),
|
|
||||||
}
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
self.group1 = Group.objects.create(name='K-Fêt - Group1')
|
|
||||||
self.group2 = Group.objects.create(name='K-Fêt - Group2')
|
|
||||||
|
|
||||||
def test_ok(self):
|
|
||||||
r = self.client.get(self.url)
|
|
||||||
self.assertEqual(r.status_code, 200)
|
|
||||||
|
|
||||||
self.assertQuerysetEqual(
|
|
||||||
r.context['groups'],
|
|
||||||
map(repr, [self.group1, self.group2]),
|
|
||||||
ordered=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class AccountGroupCreateViewTests(ViewTestCaseMixin, TestCase):
|
|
||||||
url_name = 'kfet.group.create'
|
|
||||||
url_expected = '/k-fet/groupes/nouveau/'
|
|
||||||
|
|
||||||
http_methods = ['GET', 'POST']
|
|
||||||
|
|
||||||
auth_user = 'team1'
|
|
||||||
auth_forbidden = [None, 'user', 'team']
|
|
||||||
|
|
||||||
def get_users_extra(self):
|
|
||||||
return {
|
|
||||||
'team1': create_team('team1', '101', perms=['kfetauth.add_group']),
|
|
||||||
}
|
|
||||||
|
|
||||||
@property
|
|
||||||
def post_data(self):
|
|
||||||
return {
|
|
||||||
'name': 'The Group',
|
|
||||||
'permissions': [
|
|
||||||
str(self.perms['kfet.is_team'].pk),
|
|
||||||
str(self.perms['kfetauth.add_group'].pk),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
self.perms = get_perms(
|
|
||||||
'kfet.is_team',
|
|
||||||
'kfetauth.add_group',
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_get_ok(self):
|
|
||||||
r = self.client.get(self.url)
|
|
||||||
self.assertEqual(r.status_code, 200)
|
|
||||||
|
|
||||||
def test_post_ok(self):
|
|
||||||
r = self.client.post(self.url, self.post_data)
|
|
||||||
self.assertRedirects(r, reverse('kfet.group'))
|
|
||||||
|
|
||||||
group = Group.objects.get(name='The Group')
|
|
||||||
|
|
||||||
self.assertQuerysetEqual(
|
|
||||||
group.permissions.all(),
|
|
||||||
map(repr, [
|
|
||||||
self.perms['kfet.is_team'],
|
|
||||||
self.perms['kfetauth.add_group'],
|
|
||||||
]),
|
|
||||||
ordered=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class AccountGroupUpdateViewTests(ViewTestCaseMixin, TestCase):
|
|
||||||
url_name = 'kfet.group.update'
|
|
||||||
|
|
||||||
http_methods = ['GET', 'POST']
|
|
||||||
|
|
||||||
auth_user = 'team1'
|
|
||||||
auth_forbidden = [None, 'user', 'team']
|
|
||||||
|
|
||||||
@property
|
|
||||||
def url_kwargs(self):
|
|
||||||
return {'pk': self.group.pk}
|
|
||||||
|
|
||||||
@property
|
|
||||||
def url_expected(self):
|
|
||||||
return '/k-fet/groupes/{}/edition/'.format(self.group.pk)
|
|
||||||
|
|
||||||
def get_users_extra(self):
|
|
||||||
return {
|
|
||||||
'team1': create_team('team1', '101', perms=[
|
|
||||||
'kfetauth.change_group']),
|
|
||||||
}
|
|
||||||
|
|
||||||
@property
|
|
||||||
def post_data(self):
|
|
||||||
return {
|
|
||||||
'name': 'The Group',
|
|
||||||
'permissions': [
|
|
||||||
str(self.perms['kfet.is_team'].pk),
|
|
||||||
str(self.perms['kfetauth.change_group'].pk),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
self.perms = get_perms(
|
|
||||||
'kfet.is_team',
|
|
||||||
'kfetauth.change_group',
|
|
||||||
)
|
|
||||||
self.group = Group.objects.create(name='K-Fêt - Group')
|
|
||||||
self.group.permissions = self.perms.values()
|
|
||||||
|
|
||||||
def test_get_ok(self):
|
|
||||||
r = self.client.get(self.url)
|
|
||||||
self.assertEqual(r.status_code, 200)
|
|
||||||
|
|
||||||
def test_post_ok(self):
|
|
||||||
r = self.client.post(self.url, self.post_data)
|
|
||||||
self.assertRedirects(r, reverse('kfet.group'))
|
|
||||||
|
|
||||||
self.group.refresh_from_db()
|
|
||||||
|
|
||||||
self.assertEqual(self.group.name, 'The Group')
|
|
||||||
self.assertQuerysetEqual(
|
|
||||||
self.group.permissions.all(),
|
|
||||||
map(repr, [
|
|
||||||
self.perms['kfet.is_team'],
|
|
||||||
self.perms['kfetauth.change_group'],
|
|
||||||
]),
|
|
||||||
ordered=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class AccountNegativeListViewTests(ViewTestCaseMixin, TestCase):
|
class AccountNegativeListViewTests(ViewTestCaseMixin, TestCase):
|
||||||
url_name = 'kfet.account.negative'
|
url_name = 'kfet.account.negative'
|
||||||
url_expected = '/k-fet/accounts/negatives'
|
url_expected = '/k-fet/accounts/negatives'
|
||||||
|
|
Loading…
Reference in a new issue