Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions app/api/tests/functional/test_functional_common_viewset.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,13 +241,14 @@ def viewset_mock_request(self, django_db_blocker, viewset,


# parmeterize to view action
def test_function_get_queryset_filtered_results_action_list(self,
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self,
viewset_mock_request, organization_one, organization_two, model,
api_request_permissions,
):
"""Test class function

Ensure that when function `get_queryset` returns values that are filtered
to the users tenancies only.
"""

viewset = viewset_mock_request
Expand Down Expand Up @@ -412,7 +413,7 @@ class CommonViewSetPyTest(
def viewset(self):
return CommonViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -449,7 +450,7 @@ class CommonModelViewSetBasePyTest(
def viewset(self):
return ModelViewSetBase

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -488,7 +489,7 @@ class CommonModelViewSetPyTest(
def viewset(self):
return CommonModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -522,7 +523,7 @@ class CommonSubModelViewSetPyTest(
def viewset(self):
return CommonSubModelViewSet_ReWrite

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -558,7 +559,7 @@ class CommonModelCreateViewSetPyTest(
def viewset(self):
return CommonModelCreateViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -596,7 +597,7 @@ class CommonModelListRetrieveDeleteViewSetPyTest(
def viewset(self):
return CommonModelListRetrieveDeleteViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -633,7 +634,7 @@ class CommonModelRetrieveUpdateViewSetPyTest(
def viewset(self):
return CommonModelRetrieveUpdateViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -670,7 +671,7 @@ class CommonReadOnlyModelViewSetPyTest(
def viewset(self):
return CommonReadOnlyModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -705,7 +706,7 @@ class CommonReadOnlyListModelViewSetPyTest(
def viewset(self):
return CommonReadOnlyListModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class ModelRetrieveUpdateViewSetTestCases(
CommonModelRetrieveUpdateViewSetInheritedCases,
):

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'No filtering conducted when super user is used. test is n/a.' )

def test_function_get_meta_urls_self_url(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class TenancyPermissionsModelViewSetPyTest(
def viewset(self):
return ModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -85,7 +85,7 @@ class TenancyPermissionsModelCreateViewSetPyTest(
def viewset(self):
return ModelCreateViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -127,7 +127,7 @@ class TenancyPermissionsModelListRetrieveDeleteViewSetPyTest(
def viewset(self):
return ModelListRetrieveDeleteViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -169,7 +169,7 @@ class TenancyPermissionsModelRetrieveUpdateViewSetPyTest(
def viewset(self):
return ModelRetrieveUpdateViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -210,7 +210,7 @@ class TenancyPermissionsSubModelViewSetPyTest(
def viewset(self):
return SubModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -250,7 +250,7 @@ class TenancyPermissionsReadOnlyModelViewSetPyTest(
def viewset(self):
return ReadOnlyModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down Expand Up @@ -290,7 +290,7 @@ class TenancyPermissionsReadOnlyListModelViewSetPyTest(
def viewset(self):
return ReadOnlyListModelViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class ModelCreateViewSetTestCases(
):

# parmeterize to view action
def test_function_get_queryset_filtered_results_action_list(self,
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self,
viewset_mock_request, organization_one, model
):
"""Test class function
Expand Down Expand Up @@ -62,7 +62,7 @@ class UserPermissionsModelCreateViewSetPyTest(
def viewset(self):
yield ModelCreateViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand All @@ -89,7 +89,7 @@ class ModelListRetrieveDeleteViewSetTestCases(
):

# parmeterize to view action
def test_function_get_queryset_filtered_results_action_list(self,
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self,
viewset_mock_request, organization_one, model
):
"""Test class function
Expand Down Expand Up @@ -131,7 +131,7 @@ class UserPermissionsModelListRetrieveDeleteViewSetPyTest(
def viewset(self):
yield ModelListRetrieveDeleteViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand All @@ -158,7 +158,7 @@ class ModelRetrieveUpdateViewSetTestCases(
):

# parmeterize to view action
def test_function_get_queryset_filtered_results_action_list(self,
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self,
viewset_mock_request, organization_one, model
):
"""Test class function
Expand Down Expand Up @@ -200,7 +200,7 @@ class UserPermissionsModelRetrieveUpdateViewSetPyTest(
def viewset(self):
yield ModelRetrieveUpdateViewSet

def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'Base class does not require test' )

def test_function_get_meta_urls_self_url(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ class ModelTicketViewsetPyTest(
):


def test_function_get_queryset_filtered_results_action_list(self):
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self):
pytest.xfail( reason = 'test n/a as model does not have `model` field' )

def test_function_get_meta_urls_self_url(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def viewset(self):



def test_function_get_queryset_filtered_results_action_list(self,
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self,
viewset_mock_request, organization_one, organization_two, model
):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ViewsetTestCases(
):


def test_function_get_queryset_filtered_results_action_list(self, mocker,
def test_function_get_queryset_filtered_results_action_list_user_tenancies_only(self, mocker,
viewset_mock_request, organization_one, organization_two, model
):

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest


from rest_framework.test import APIClient

from api.tests.functional.viewset.test_functional_tenancy_viewset import (
ModelViewSetInheritedCases
Expand All @@ -22,25 +22,103 @@ class ViewsetTestCases(
def viewset(self):
return ViewSet

@pytest.fixture( scope = 'function' )
def viewset_mock_request(self, django_db_blocker, viewset,
clean_model_from_db, api_request_permissions,
organization_one, organization_two,
model_instance, model_kwargs, model_ticketcommentbase,
settings
):

with django_db_blocker.unblock():

user = api_request_permissions['user']['view']

user2 = api_request_permissions['user']['change']

self.user = user

kwargs = model_kwargs()
kwargs['user'] = user.employee
kwargs['ticket'].organization = organization_one
kwargs['ticket'].save()

user_tenancy_item = model_instance( kwargs_create = kwargs )

kwargs = model_kwargs()
kwargs['ticket'].organization = organization_two
kwargs['ticket'].save()
kwargs['user'] = user2.employee

other_tenancy_item = model_instance( kwargs_create = kwargs )


settings.SITE_URL = 'http://testserver'

client = APIClient()
client.force_authenticate(user=user)

response = client.get(user_tenancy_item.get_url(many = True))

view_set = response.renderer_context['view']


yield view_set

del view_set.request
del view_set
del self.user



def test_function_get_queryset_filtered_results_action_list_ticket(self,
viewset_mock_request, model, api_request_permissions,
):
"""Test class function

Ensure that when function `get_queryset` returns values that are filtered
to the ticket in question.
"""

viewset = viewset_mock_request

viewset.action = 'list'

viewset.allowed_methods = [ 'GET' ]

queryset = viewset.get_queryset()

assert len(
model.objects.all()
) >= 2, 'multiple objects must exist for test to work'

assert len( queryset ) > 0, 'Empty queryset returned. Test not possible'

test_obj = model.objects.filter(
organization = api_request_permissions['tenancy']['user']
)


def test_function_get_queryset_filtered_results_action_list(self):
pytest.xfail( reason = 'model is not multi-tenancy capable, test is N/A.' )
assert len(
test_obj
) > 0, 'objects in user org required for test to work.'

def test_function_get_meta_urls_self_url(self):
pytest.xfail( reason = 'Base class does not require test' )
assert len(
model.objects.filter(
organization = api_request_permissions['tenancy']['different']
)
) > 0, 'objects in different org required for test to work.'


def test_function_get_meta_urls_no_sub_models_key(self):
pytest.xfail( reason = 'Base class does not require test' )
only_user_results_returned = True

for result in queryset:

def test_function_get_meta_urls_sub_models_keys(self):
pytest.xfail( reason = 'Base class does not require test' )
if result.ticket.id != test_obj[0].ticket.id:
only_user_results_returned = False


def test_function_get_meta_urls_sub_models_values(self,):
pytest.xfail( reason = 'Base class does not require test' )
assert only_user_results_returned



Expand Down
Loading