2019-06-16 22:09:51 +02:00
|
|
|
import pytest
|
2019-08-28 23:09:06 +02:00
|
|
|
from mixer.backend.django import mixer
|
|
|
|
|
2019-06-16 22:09:51 +02:00
|
|
|
from django.core.management import call_command
|
2019-07-14 12:58:10 +02:00
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
from django.contrib.auth.models import Group
|
2019-08-04 20:46:02 +02:00
|
|
|
from guardian.shortcuts import assign_perm
|
2019-07-14 12:58:10 +02:00
|
|
|
|
2019-06-16 22:09:51 +02:00
|
|
|
|
|
|
|
@pytest.fixture(scope='session')
|
|
|
|
def django_db_setup(django_db_setup, django_db_blocker):
|
|
|
|
with django_db_blocker.unblock():
|
2020-01-11 17:39:17 +01:00
|
|
|
call_command('loaddata', 'backups.yaml')
|
2020-01-12 14:36:44 +01:00
|
|
|
call_command('loaddata', 'computers.yaml')
|
2020-01-10 00:01:06 +01:00
|
|
|
call_command('loaddata', 'core.yaml')
|
|
|
|
call_command('loaddata', 'devices.yaml')
|
|
|
|
call_command('loaddata', 'nets.yaml')
|
2020-01-12 12:40:43 +01:00
|
|
|
call_command('loaddata', 'softwares.yaml')
|
2019-07-14 12:58:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2019-08-04 20:46:02 +02:00
|
|
|
def create_admin_user():
|
|
|
|
def _create_admin_user():
|
|
|
|
User = get_user_model()
|
2020-03-15 19:54:43 +01:00
|
|
|
admin = User.objects.create_user("pharma-admin",
|
|
|
|
"admin@pharma.com",
|
2020-02-29 21:03:47 +01:00
|
|
|
"password",
|
|
|
|
is_staff=True)
|
2020-01-10 00:01:06 +01:00
|
|
|
customer = mixer.blend('customers.Customer')
|
2020-03-15 19:54:43 +01:00
|
|
|
group = Group.objects.create(name="Pharma Corp. Admin")
|
2019-08-04 20:46:02 +02:00
|
|
|
admin.groups.add(group)
|
|
|
|
assign_perm('view_customer', admin, customer)
|
|
|
|
result = {}
|
|
|
|
result['admin'] = admin
|
|
|
|
result['customer'] = customer
|
|
|
|
result['group'] = group
|
|
|
|
return result
|
|
|
|
return _create_admin_user
|
2020-11-28 11:14:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def api_client():
|
|
|
|
from rest_framework.test import APIClient
|
|
|
|
return APIClient()
|
2020-12-06 14:18:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2020-12-07 15:41:45 +01:00
|
|
|
def api_client_authenticated(db, create_admin_user, api_client):
|
2020-12-06 14:18:48 +01:00
|
|
|
fixture = create_admin_user()
|
|
|
|
api_client.force_authenticate(user=fixture['admin'])
|
|
|
|
yield api_client
|
|
|
|
api_client.force_authenticate(user=None)
|