2020-02-29 18:54:04 +01:00
|
|
|
from django.http import Http404
|
2021-12-26 15:37:30 +01:00
|
|
|
from mixer.backend.django import mixer
|
|
|
|
|
2020-02-29 18:54:04 +01:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from core import utils
|
|
|
|
|
2021-12-26 15:37:30 +01:00
|
|
|
from customers.models import Customer
|
|
|
|
from devices.models import Device
|
|
|
|
|
2020-02-29 18:54:04 +01:00
|
|
|
pytestmark = pytest.mark.django_db
|
2021-12-26 15:37:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
def test_get_object_with_view_permission(create_admin_user):
|
|
|
|
fixture = create_admin_user()
|
2022-03-27 14:50:44 +02:00
|
|
|
customer = fixture["customer"]
|
|
|
|
admin = fixture["admin"]
|
2023-07-10 16:47:01 +02:00
|
|
|
object = utils.get_object_with_view_permission(Customer, user=admin, pk=customer.id)
|
2021-12-26 15:37:30 +01:00
|
|
|
assert object == customer
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_object_with_view_permission_device(create_admin_user):
|
|
|
|
fixture = create_admin_user()
|
2022-03-27 14:50:44 +02:00
|
|
|
customer = fixture["customer"]
|
|
|
|
admin = fixture["admin"]
|
2021-12-26 15:37:30 +01:00
|
|
|
device = mixer.blend(Device, customer=customer)
|
2023-07-10 16:47:01 +02:00
|
|
|
object = utils.get_object_with_view_permission(Device, user=admin, pk=device.id)
|
2021-12-26 15:37:30 +01:00
|
|
|
assert object == device
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_object_without_view_permission(create_admin_user):
|
|
|
|
fixture = create_admin_user()
|
|
|
|
customer = mixer.blend(Customer)
|
2022-03-27 14:50:44 +02:00
|
|
|
admin = fixture["admin"]
|
2021-12-26 15:37:30 +01:00
|
|
|
with pytest.raises(Http404):
|
2023-07-10 16:47:01 +02:00
|
|
|
utils.get_object_with_view_permission(Customer, user=admin, pk=customer.id)
|
2021-12-26 15:37:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
def test_get_object_without_view_permission_device(create_admin_user):
|
|
|
|
fixture = create_admin_user()
|
|
|
|
customer = mixer.blend(Customer)
|
2022-03-27 14:50:44 +02:00
|
|
|
admin = fixture["admin"]
|
2021-12-26 15:37:30 +01:00
|
|
|
device = mixer.blend(Device, customer=customer)
|
|
|
|
with pytest.raises(Http404):
|
2022-03-27 14:50:44 +02:00
|
|
|
utils.get_object_with_view_permission(Device, user=admin, pk=device.id)
|