forked from rc/aircox
cfr #121 Co-authored-by: Christophe Siraut <d@tobald.eu.org> Co-authored-by: bkfox <thomas bkfox net> Co-authored-by: Thomas Kairos <thomas@bkfox.net> Reviewed-on: rc/aircox#131 Co-authored-by: Chris Tactic <ctactic@noreply.git.radiocampus.be> Co-committed-by: Chris Tactic <ctactic@noreply.git.radiocampus.be>
This commit is contained in:
46
aircox/tests/_test_permissions.py
Normal file
46
aircox/tests/_test_permissions.py
Normal file
@ -0,0 +1,46 @@
|
||||
import pytest
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.urls import reverse
|
||||
|
||||
|
||||
@pytest.mark.django_db()
|
||||
def test_no_admin(user, client):
|
||||
client.force_login(user)
|
||||
response = client.get("/admin/")
|
||||
assert response.status_code != 200
|
||||
|
||||
|
||||
@pytest.mark.django_db()
|
||||
def test_user_cannot_change_program_or_episode(user, client, program):
|
||||
assert not user.has_perm("aircox.change_program")
|
||||
assert not user.has_perm("aircox.change_episode")
|
||||
|
||||
|
||||
@pytest.mark.django_db()
|
||||
def test_group_can_change_program(user, client, program):
|
||||
assert program.editors in Group.objects.all()
|
||||
assert not user.has_perm("aircox.%s" % program.change_permission_codename)
|
||||
user.groups.add(program.editors)
|
||||
user = User.objects.get(pk=user.pk) # reload user in order to have permissions set
|
||||
assert program.editors in user.groups.all()
|
||||
assert user.has_perm("aircox.%s" % program.change_permission_codename)
|
||||
|
||||
|
||||
@pytest.mark.django_db()
|
||||
def test_group_change_program(user, client, program):
|
||||
client.force_login(user)
|
||||
response = client.get(reverse("program-edit", kwargs={"pk": program.pk}))
|
||||
assert response.status_code == 403
|
||||
user.groups.add(program.editors)
|
||||
response = client.get(reverse("program-edit", kwargs={"pk": program.pk}))
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
@pytest.mark.django_db()
|
||||
def test_group_change_episode(user, client, program, episode):
|
||||
client.force_login(user)
|
||||
response = client.get(reverse("episode-edit", kwargs={"pk": episode.pk}))
|
||||
assert response.status_code == 403
|
||||
user.groups.add(program.editors)
|
||||
response = client.get(reverse("episode-edit", kwargs={"pk": episode.pk}))
|
||||
assert response.status_code == 200
|
Reference in New Issue
Block a user