@ -1,4 +1,5 @@
|
||||
import datetime
|
||||
from typing import Any
|
||||
import django
|
||||
import pytest
|
||||
import os
|
||||
@ -7,6 +8,7 @@ import sys
|
||||
|
||||
from django.core.management import call_command
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.test import (
|
||||
TestCase
|
||||
)
|
||||
@ -769,7 +771,3 @@ def user(django_db_blocker, model_user, kwargs_user):
|
||||
with django_db_blocker.unblock():
|
||||
|
||||
user.delete()
|
||||
|
||||
|
||||
|
||||
|
||||
|
17
app/tests/fixtures/__init__.py
vendored
17
app/tests/fixtures/__init__.py
vendored
@ -5,6 +5,10 @@ from .api_request_permissions import (
|
||||
api_request_permissions,
|
||||
)
|
||||
|
||||
from .kwargs_api_create import (
|
||||
kwargs_api_create
|
||||
)
|
||||
|
||||
from .model_centurionaudit import (
|
||||
kwargs_centurionaudit,
|
||||
model_centurionaudit,
|
||||
@ -47,12 +51,25 @@ from .model_featureflag import (
|
||||
from .model_gitgroup import (
|
||||
kwargs_gitgroup,
|
||||
model_gitgroup,
|
||||
serializer_gitgroup,
|
||||
)
|
||||
|
||||
from .model_instance import (
|
||||
model_instance
|
||||
)
|
||||
|
||||
from .model_permission import (
|
||||
model_permission,
|
||||
)
|
||||
|
||||
from .model_team import (
|
||||
model_team,
|
||||
)
|
||||
|
||||
from .model_teamuser import (
|
||||
model_teamuser,
|
||||
)
|
||||
|
||||
from .model_tenancyabstract import (
|
||||
kwargs_tenancyabstract,
|
||||
model_tenancyabstract,
|
||||
|
47
app/tests/fixtures/api_request_permissions.py
vendored
47
app/tests/fixtures/api_request_permissions.py
vendored
@ -1,17 +1,17 @@
|
||||
import django
|
||||
import datetime
|
||||
import pytest
|
||||
|
||||
from settings.models.app_settings import AppSettings
|
||||
|
||||
|
||||
User = django.contrib.auth.get_user_model()
|
||||
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def api_request_permissions( django_db_blocker,
|
||||
model_contenttype,
|
||||
model_permission,
|
||||
model_team,
|
||||
model_teamuser,
|
||||
model_user,
|
||||
model,
|
||||
organization_one,
|
||||
organization_two,
|
||||
@ -41,18 +41,18 @@ def api_request_permissions( django_db_blocker,
|
||||
)
|
||||
)
|
||||
|
||||
add_team = Team.objects.create(
|
||||
add_team = model_team.objects.create(
|
||||
team_name = 'add_team' + str(random_str),
|
||||
organization = organization_one,
|
||||
)
|
||||
|
||||
add_team.permissions.set([add_permissions])
|
||||
|
||||
add_user = User.objects.create_user(
|
||||
add_user = model_user.objects.create_user(
|
||||
username="test_user_add" + str(random_str), password="password"
|
||||
)
|
||||
|
||||
TeamUsers.objects.create(
|
||||
model_teamuser.objects.create(
|
||||
team = add_team,
|
||||
user = add_user
|
||||
)
|
||||
@ -67,18 +67,18 @@ def api_request_permissions( django_db_blocker,
|
||||
)
|
||||
)
|
||||
|
||||
change_team = Team.objects.create(
|
||||
change_team = model_team.objects.create(
|
||||
team_name = 'change_team' + str(random_str),
|
||||
organization = organization_one,
|
||||
)
|
||||
|
||||
change_team.permissions.set([change_permissions])
|
||||
|
||||
change_user = User.objects.create_user(
|
||||
change_user = model_user.objects.create_user(
|
||||
username="test_user_change" + str(random_str), password="password"
|
||||
)
|
||||
|
||||
TeamUsers.objects.create(
|
||||
model_teamuser.objects.create(
|
||||
team = change_team,
|
||||
user = change_user
|
||||
)
|
||||
@ -93,17 +93,17 @@ def api_request_permissions( django_db_blocker,
|
||||
)
|
||||
)
|
||||
|
||||
delete_team = Team.objects.create(
|
||||
delete_team = model_team.objects.create(
|
||||
team_name = 'delete_team' + str(random_str),
|
||||
organization = organization_one,
|
||||
)
|
||||
|
||||
delete_team.permissions.set([delete_permissions])
|
||||
|
||||
delete_user = User.objects.create_user(
|
||||
delete_user = model_user.objects.create_user(
|
||||
username="test_user_delete" + str(random_str), password="password"
|
||||
)
|
||||
TeamUsers.objects.create(
|
||||
model_teamuser.objects.create(
|
||||
team = delete_team,
|
||||
user = delete_user
|
||||
)
|
||||
@ -118,30 +118,30 @@ def api_request_permissions( django_db_blocker,
|
||||
)
|
||||
)
|
||||
|
||||
view_team = Team.objects.create(
|
||||
view_team = model_team.objects.create(
|
||||
team_name = 'view_team' + str(random_str),
|
||||
organization = organization_one,
|
||||
)
|
||||
|
||||
view_team.permissions.set([view_permissions])
|
||||
|
||||
view_user = User.objects.create_user(
|
||||
view_user = model_user.objects.create_user(
|
||||
username="test_user_view" + str(random_str), password="password"
|
||||
)
|
||||
|
||||
TeamUsers.objects.create(
|
||||
model_teamuser.objects.create(
|
||||
team = view_team,
|
||||
user = view_user
|
||||
)
|
||||
|
||||
|
||||
|
||||
different_organization_user = User.objects.create_user(
|
||||
different_organization_user = model_user.objects.create_user(
|
||||
username="test_diff_org_user" + str(random_str), password="password"
|
||||
)
|
||||
|
||||
|
||||
different_organization_team = Team.objects.create(
|
||||
different_organization_team = model_team.objects.create(
|
||||
team_name = 'diff_org_team' + str(random_str),
|
||||
organization = organization_two,
|
||||
)
|
||||
@ -153,11 +153,17 @@ def api_request_permissions( django_db_blocker,
|
||||
delete_permissions,
|
||||
])
|
||||
|
||||
TeamUsers.objects.create(
|
||||
model_teamuser.objects.create(
|
||||
team = different_organization_team,
|
||||
user = different_organization_user
|
||||
)
|
||||
|
||||
|
||||
no_permission_user = model_user.objects.create_user(
|
||||
username="nil_permissions" + str(random_str), password="password"
|
||||
)
|
||||
|
||||
|
||||
yield {
|
||||
'app_settings': app_settings,
|
||||
'tenancy': {
|
||||
@ -167,10 +173,11 @@ def api_request_permissions( django_db_blocker,
|
||||
},
|
||||
'user': {
|
||||
'add': add_user,
|
||||
'anon': None,
|
||||
'change': change_user,
|
||||
'delete': delete_user,
|
||||
'different_tenancy': different_organization_user,
|
||||
'no_permissions': '',
|
||||
'no_permissions': no_permission_user,
|
||||
'view': view_user,
|
||||
}
|
||||
|
||||
|
26
app/tests/fixtures/kwargs_api_create.py
vendored
Normal file
26
app/tests/fixtures/kwargs_api_create.py
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope = 'class')
|
||||
def kwargs_api_create(django_db_blocker, model_kwargs):
|
||||
|
||||
|
||||
kwargs: dict = {}
|
||||
|
||||
with django_db_blocker.unblock():
|
||||
|
||||
for field, value in model_kwargs.items():
|
||||
|
||||
if value is None:
|
||||
continue
|
||||
|
||||
if isinstance(value, models.Model):
|
||||
value = value.id
|
||||
|
||||
kwargs.update({
|
||||
field: value
|
||||
})
|
||||
|
||||
yield kwargs
|
||||
|
||||
del kwargs
|
17
app/tests/fixtures/model_gitgroup.py
vendored
17
app/tests/fixtures/model_gitgroup.py
vendored
@ -1,7 +1,10 @@
|
||||
import pytest
|
||||
|
||||
from devops.models.git_group import GitGroup
|
||||
|
||||
from devops.serializers.git_group import (
|
||||
ModelSerializer,
|
||||
ViewSerializer
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
@ -11,10 +14,16 @@ def model_gitgroup(request):
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def kwargs_gitgroup(kwargs_centurionmodel):
|
||||
def serializer_gitgroup():
|
||||
|
||||
# kwargs = kwargs_centurionmodel.copy()
|
||||
# del kwargs['model_notes']
|
||||
yield {
|
||||
'model': ModelSerializer,
|
||||
'view': ViewSerializer,
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def kwargs_gitgroup(kwargs_centurionmodel):
|
||||
|
||||
kwargs = {
|
||||
**kwargs_centurionmodel.copy(),
|
||||
|
87
app/tests/fixtures/model_instance.py
vendored
Normal file
87
app/tests/fixtures/model_instance.py
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
import datetime
|
||||
import pytest
|
||||
|
||||
from django.apps import apps
|
||||
|
||||
|
||||
|
||||
model_objs: list = []
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def model_instance(django_db_blocker, model_user, model, model_kwargs):
|
||||
|
||||
with django_db_blocker.unblock():
|
||||
|
||||
|
||||
def instance( user = None, random_field:str = '', kwargs_create: dict = {} ):
|
||||
"""Create a model instance
|
||||
|
||||
Args:
|
||||
user (User, optional): The User to create and add to model.context['user'].
|
||||
Defaults to None.
|
||||
random_field (str, optional): The unique field that needs to be randomized.
|
||||
Defaults to ''.
|
||||
kwargs_create (dict, optional): object create kwargs. overwrites default.
|
||||
Defaults to {}.
|
||||
|
||||
Returns:
|
||||
Model Object (Model): Model that was created.
|
||||
"""
|
||||
|
||||
global model_objs
|
||||
|
||||
obj = None
|
||||
|
||||
if user:
|
||||
model.context['user'] = user
|
||||
|
||||
|
||||
if model._meta.abstract:
|
||||
|
||||
class MockModel(model):
|
||||
class Meta:
|
||||
app_label = 'core'
|
||||
verbose_name = 'mock instance'
|
||||
managed = False
|
||||
|
||||
obj = MockModel()
|
||||
|
||||
else:
|
||||
|
||||
kwargs = model_kwargs.copy()
|
||||
|
||||
kwargs.update( kwargs_create )
|
||||
|
||||
if random_field:
|
||||
|
||||
random_str = str(datetime.datetime.now(tz=datetime.timezone.utc))
|
||||
|
||||
kwargs.update({
|
||||
random_field: str( random_field ) + '_' + random_str
|
||||
})
|
||||
|
||||
obj = model.objects.create(
|
||||
**kwargs
|
||||
)
|
||||
|
||||
model_objs += [ obj ]
|
||||
|
||||
return obj
|
||||
|
||||
yield instance
|
||||
|
||||
for model_obj in model_objs:
|
||||
|
||||
if model_obj._meta.abstract:
|
||||
|
||||
del model_obj
|
||||
|
||||
else:
|
||||
|
||||
model_obj.delete()
|
||||
|
||||
|
||||
if 'mockmodel' in apps.all_models['core']:
|
||||
|
||||
del apps.all_models['core']['mockmodel']
|
9
app/tests/fixtures/model_team.py
vendored
Normal file
9
app/tests/fixtures/model_team.py
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
import pytest
|
||||
|
||||
from access.models.team import Team
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def model_team(request):
|
||||
|
||||
yield Team
|
9
app/tests/fixtures/model_teamuser.py
vendored
Normal file
9
app/tests/fixtures/model_teamuser.py
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
import pytest
|
||||
|
||||
from access.models.team_user import TeamUsers
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def model_teamuser(request):
|
||||
|
||||
yield TeamUsers
|
6
app/tests/fixtures/model_tenancyabstract.py
vendored
6
app/tests/fixtures/model_tenancyabstract.py
vendored
@ -11,8 +11,10 @@ def model_tenancyabstract(request):
|
||||
|
||||
|
||||
@pytest.fixture( scope = 'class')
|
||||
def kwargs_tenancyabstract():
|
||||
def kwargs_tenancyabstract(organization_one):
|
||||
|
||||
kwargs = {}
|
||||
kwargs = {
|
||||
'organization': organization_one
|
||||
}
|
||||
|
||||
yield kwargs.copy()
|
||||
|
@ -1066,13 +1066,15 @@ log_cli_format = '%(asctime)s %(levelname)s %(message)s'
|
||||
log_cli_date_format = '%Y-%m-%d %H:%M:%S'
|
||||
|
||||
markers = [
|
||||
"audit_models: Selects Audit models...",
|
||||
"api: Selects all API related tests.",
|
||||
"audit_models: Selects Audit models.",
|
||||
"centurion_models: Selects Centurion models",
|
||||
"functional: Selects all Functional tests.",
|
||||
"meta_models: Selects Meta models",
|
||||
"model_gitgroup: Selects tests for model `git group`",
|
||||
"models: Selects all models tests.",
|
||||
"note_models: Selects all centurion model note models",
|
||||
"permissions: selects all permission related tests.",
|
||||
"tenancy_models: Selects Tenancy models.",
|
||||
"unit: Selects all Unit Tests.",
|
||||
]
|
||||
|
Reference in New Issue
Block a user