47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
import http
|
|
import logging
|
|
from http import HTTPStatus
|
|
|
|
import pytest
|
|
from django.contrib.auth import get_user_model
|
|
from django.urls import reverse
|
|
from rest_framework.test import APIClient
|
|
|
|
from assets.models.assets import OperatingSystem, Asset
|
|
from perms.models import Perm
|
|
|
|
_log = logging.getLogger()
|
|
|
|
TIMEOUT = 10 # time before timeout exception appears
|
|
User = get_user_model()
|
|
|
|
|
|
@pytest.mark.django_db
|
|
class TestAssetPagesAccess(object):
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def setup_tests(self, django_user_model, add_user_with_permissions):
|
|
""" Fixture for preparing database for tests
|
|
:param client: object to work with test session
|
|
:param django_user_model: object to work with User model in pytest
|
|
:param add_user_with_permissions: fixture for adding new user
|
|
:return: prepared for tests database with:
|
|
user 'user1' with perms.can_view_user permission
|
|
user 'test_user' for testing view_user page features
|
|
"""
|
|
username = 'foo'
|
|
password = 'bar'
|
|
|
|
add_user_with_permissions(username=username, password=password,
|
|
is_superuser=True)
|
|
add_user_with_permissions(username='test_no_perms', password='1')
|
|
add_user_with_permissions(username='test_right_perms', password='1',
|
|
permissions=[Perm.can_view_assets_list,
|
|
Perm.can_view_asset,
|
|
Perm.can_edit_asset])
|
|
add_user_with_permissions(username='test_perms', password='1',
|
|
permissions=[])
|
|
os = OperatingSystem.objects.create(name='MACOS')
|
|
for i in range(5):
|
|
Asset.objects.create(name=f'test{i}', ip='1.1.1.1', os=os)
|
|
|