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>
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
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
|