46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
from django.http import Http404
|
|
from mixer.backend.django import mixer
|
|
|
|
import pytest
|
|
|
|
from core import utils
|
|
|
|
from customers.models import Customer
|
|
from devices.models import Device
|
|
|
|
pytestmark = pytest.mark.django_db
|
|
|
|
|
|
def test_get_object_with_view_permission(create_admin_user):
|
|
fixture = create_admin_user()
|
|
customer = fixture["customer"]
|
|
admin = fixture["admin"]
|
|
object = utils.get_object_with_view_permission(Customer, user=admin, pk=customer.id)
|
|
assert object == customer
|
|
|
|
|
|
def test_get_object_with_view_permission_device(create_admin_user):
|
|
fixture = create_admin_user()
|
|
customer = fixture["customer"]
|
|
admin = fixture["admin"]
|
|
device = mixer.blend(Device, customer=customer)
|
|
object = utils.get_object_with_view_permission(Device, user=admin, pk=device.id)
|
|
assert object == device
|
|
|
|
|
|
def test_get_object_without_view_permission(create_admin_user):
|
|
fixture = create_admin_user()
|
|
customer = mixer.blend(Customer)
|
|
admin = fixture["admin"]
|
|
with pytest.raises(Http404):
|
|
utils.get_object_with_view_permission(Customer, user=admin, pk=customer.id)
|
|
|
|
|
|
def test_get_object_without_view_permission_device(create_admin_user):
|
|
fixture = create_admin_user()
|
|
customer = mixer.blend(Customer)
|
|
admin = fixture["admin"]
|
|
device = mixer.blend(Device, customer=customer)
|
|
with pytest.raises(Http404):
|
|
utils.get_object_with_view_permission(Device, user=admin, pk=device.id)
|