diff --git a/app/access/tests/unit/organization/test_organizaiton_api.py b/app/access/tests/unit/organization/test_organizaiton_api.py deleted file mode 100644 index 31c4a153..00000000 --- a/app/access/tests/unit/organization/test_organizaiton_api.py +++ /dev/null @@ -1,377 +0,0 @@ -import django -import pytest -import unittest - -from django.contrib.auth import get_user_model -from django.contrib.auth.models import AnonymousUser, Permission -from django.contrib.contenttypes.models import ContentType -from django.shortcuts import reverse -from django.test import Client, TestCase - -from rest_framework.relations import Hyperlink - -from access.models.tenant import Tenant as Organization -from access.models.team import Team -from access.models.team_user import TeamUsers - -User = django.contrib.auth.get_user_model() - - - - -class OrganizationAPI(TestCase): - - model = Organization - - app_namespace = 'v1' - - url_name = '_api_organization' - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. Create an organization for user and item - . create an organization that is different to item - 2. Create a device - 3. create teams with each permission: view, add, change, delete - 4. create a user per team - """ - - organization = Organization.objects.create(name='test_org') - - self.organization = organization - - different_organization = Organization.objects.create(name='test_different_organization') - - - self.item = organization - - self.url_view_kwargs = {'pk': self.item.id} - - self.url_kwargs = {'pk': self.item.id} - - view_permissions = Permission.objects.get( - codename = 'view_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - view_team = Team.objects.create( - team_name = 'view_team', - organization = organization, - ) - - view_team.permissions.set([view_permissions]) - - - self.view_user = User.objects.create_user(username="test_user_view", password="password") - teamuser = TeamUsers.objects.create( - team = view_team, - user = self.view_user - ) - - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name, kwargs=self.url_view_kwargs) - - - client.force_login(self.view_user) - response = client.get(url) - - self.api_data = response.data - - - - def test_api_field_exists_id(self): - """ Test for existance of API Field - - id field must exist - """ - - assert 'id' in self.api_data - - - def test_api_field_type_id(self): - """ Test for type for API Field - - id field must be int - """ - - assert type(self.api_data['id']) is int - - - def test_api_field_exists_name(self): - """ Test for existance of API Field - - name field must exist - """ - - assert 'name' in self.api_data - - - def test_api_field_type_name(self): - """ Test for type for API Field - - name field must be str - """ - - assert type(self.api_data['name']) is str - - - def test_api_field_exists_teams(self): - """ Test for existance of API Field - - teams field must exist - """ - - assert 'teams' in self.api_data - - - def test_api_field_type_teams(self): - """ Test for type for API Field - - teams field must be list - """ - - assert type(self.api_data['teams']) is list - - - def test_api_field_exists_url(self): - """ Test for existance of API Field - - url field must exist - """ - - assert 'url' in self.api_data - - - def test_api_field_type_url(self): - """ Test for type for API Field - - url field must be str - """ - - assert type(self.api_data['url']) is Hyperlink - - - - - def test_api_field_exists_teams_id(self): - """ Test for existance of API Field - - teams.id field must exist - """ - - assert 'id' in self.api_data['teams'][0] - - - def test_api_field_type_teams_id(self): - """ Test for type for API Field - - teams.id field must be int - """ - - assert type(self.api_data['teams'][0]['id']) is int - - - def test_api_field_exists_teams_team_name(self): - """ Test for existance of API Field - - teams.team_name field must exist - """ - - assert 'team_name' in self.api_data['teams'][0] - - - def test_api_field_type_teams_team_name(self): - """ Test for type for API Field - - teams.team_name field must be string - """ - - assert type(self.api_data['teams'][0]['team_name']) is str - - - def test_api_field_exists_teams_permissions(self): - """ Test for existance of API Field - - teams.permissions field must exist - """ - - assert 'permissions' in self.api_data['teams'][0] - - - def test_api_field_type_teams_permissions(self): - """ Test for type for API Field - - teams.permissions field must be list - """ - - assert type(self.api_data['teams'][0]['permissions']) is list - - - def test_api_field_exists_teams_permissions_url(self): - """ Test for existance of API Field - - teams.permissions_url field must exist - """ - - assert 'permissions_url' in self.api_data['teams'][0] - - - def test_api_field_type_teams_permissions_url(self): - """ Test for type for API Field - - teams.permissions_url field must be url - """ - - assert type(self.api_data['teams'][0]['permissions_url']) is str - - - def test_api_field_exists_teams_url(self): - """ Test for existance of API Field - - teams.url field must exist - """ - - assert 'url' in self.api_data['teams'][0] - - - def test_api_field_type_teams_url(self): - """ Test for type for API Field - - teams.url field must be url - """ - - assert type(self.api_data['teams'][0]['url']) is str - - - - def test_api_field_exists_teams_permissions_id(self): - """ Test for existance of API Field - - teams.permissions.id field must exist - """ - - assert 'id' in self.api_data['teams'][0]['permissions'][0] - - - def test_api_field_type_teams_permissions_id(self): - """ Test for type for API Field - - teams.permissions.id field must be int - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['id']) is int - - - def test_api_field_exists_teams_permissions_name(self): - """ Test for existance of API Field - - teams.permissions.name field must exist - """ - - assert 'name' in self.api_data['teams'][0]['permissions'][0] - - - def test_api_field_type_teams_permissions_name(self): - """ Test for type for API Field - - teams.permissions.name field must be str - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['name']) is str - - - def test_api_field_exists_teams_permissions_codename(self): - """ Test for existance of API Field - - teams.permissions.codename field must exist - """ - - assert 'codename' in self.api_data['teams'][0]['permissions'][0] - - - def test_api_field_type_teams_permissions_codename(self): - """ Test for type for API Field - - teams.permissions.codename field must be str - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['codename']) is str - - - def test_api_field_exists_teams_permissions_content_type(self): - """ Test for existance of API Field - - teams.permissions.content_type field must exist - """ - - assert 'content_type' in self.api_data['teams'][0]['permissions'][0] - - - def test_api_field_type_teams_permissions_content_type(self): - """ Test for type for API Field - - teams.permissions.content_type field must be dict - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['content_type']) is dict - - - - def test_api_field_exists_teams_permissions_content_type_id(self): - """ Test for existance of API Field - - teams.permissions.content_type.id field must exist - """ - - assert 'id' in self.api_data['teams'][0]['permissions'][0]['content_type'] - - - def test_api_field_type_teams_permissions_content_type_id(self): - """ Test for type for API Field - - teams.permissions.content_type.id field must be int - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['content_type']['id']) is int - - - def test_api_field_exists_teams_permissions_content_type_app_label(self): - """ Test for existance of API Field - - teams.permissions.content_type.app_label field must exist - """ - - assert 'app_label' in self.api_data['teams'][0]['permissions'][0]['content_type'] - - - def test_api_field_type_teams_permissions_content_type_app_label(self): - """ Test for type for API Field - - teams.permissions.content_type.app_label field must be str - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['content_type']['app_label']) is str - - - def test_api_field_exists_teams_permissions_content_type_model(self): - """ Test for existance of API Field - - teams.permissions.content_type.model field must exist - """ - - assert 'model' in self.api_data['teams'][0]['permissions'][0]['content_type'] - - - def test_api_field_type_teams_permissions_content_type_model(self): - """ Test for type for API Field - - teams.permissions.content_type.model field must be str - """ - - assert type(self.api_data['teams'][0]['permissions'][0]['content_type']['model']) is str diff --git a/app/access/tests/unit/organization/test_organizaiton_permission_api.py b/app/access/tests/unit/organization/test_organizaiton_permission_api.py deleted file mode 100644 index 4d39a833..00000000 --- a/app/access/tests/unit/organization/test_organizaiton_permission_api.py +++ /dev/null @@ -1,244 +0,0 @@ -import django -import pytest -import unittest - -from django.contrib.auth import get_user_model -from django.contrib.auth.models import AnonymousUser, Permission -from django.contrib.contenttypes.models import ContentType -from django.shortcuts import reverse -from django.test import Client, TestCase - -from access.models.tenant import Tenant as Organization -from access.models.team import Team -from access.models.team_user import TeamUsers - -from api.tests.abstract.api_permissions import APIPermissionChange, APIPermissionView - -User = django.contrib.auth.get_user_model() - - - -class OrganizationPermissionsAPI(TestCase, APIPermissionChange, APIPermissionView): - - model = Organization - - model_name = 'organization' - app_label = 'access' - - app_namespace = 'v1' - - url_name = '_api_organization' - - url_list = '_api_orgs' - - change_data = {'name': 'device'} - - # delete_data = {'device': 'device'} - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. Create an organization for user and item - . create an organization that is different to item - 2. Create a device - 3. create teams with each permission: view, add, change, delete - 4. create a user per team - """ - - organization = Organization.objects.create(name='test_org') - - self.organization = organization - - different_organization = Organization.objects.create(name='test_different_organization') - - - self.item = organization - - self.url_view_kwargs = {'pk': self.item.id} - - self.url_kwargs = {'pk': self.item.id} - - # self.add_data = {'name': 'device', 'organization': self.organization.id} - - - view_permissions = Permission.objects.get( - codename = 'view_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - view_team = Team.objects.create( - team_name = 'view_team', - organization = organization, - ) - - view_team.permissions.set([view_permissions]) - - - - add_permissions = Permission.objects.get( - codename = 'add_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - add_team = Team.objects.create( - team_name = 'add_team', - organization = organization, - ) - - add_team.permissions.set([add_permissions]) - - - - change_permissions = Permission.objects.get( - codename = 'change_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - change_team = Team.objects.create( - team_name = 'change_team', - organization = organization, - ) - - change_team.permissions.set([change_permissions]) - - - - delete_permissions = Permission.objects.get( - codename = 'delete_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - delete_team = Team.objects.create( - team_name = 'delete_team', - organization = organization, - ) - - delete_team.permissions.set([delete_permissions]) - - - self.super_user = User.objects.create_user(username="super_user", password="password", is_superuser=True) - - self.no_permissions_user = User.objects.create_user(username="test_no_permissions", password="password") - - - self.view_user = User.objects.create_user(username="test_user_view", password="password") - teamuser = TeamUsers.objects.create( - team = view_team, - user = self.view_user - ) - - self.add_user = User.objects.create_user(username="test_user_add", password="password") - teamuser = TeamUsers.objects.create( - team = add_team, - user = self.add_user - ) - - self.change_user = User.objects.create_user(username="test_user_change", password="password") - teamuser = TeamUsers.objects.create( - team = change_team, - user = self.change_user - ) - - self.delete_user = User.objects.create_user(username="test_user_delete", password="password") - teamuser = TeamUsers.objects.create( - team = delete_team, - user = self.delete_user - ) - - - self.different_organization_user = User.objects.create_user(username="test_different_organization_user", password="password") - - - different_organization_team = Team.objects.create( - team_name = 'different_organization_team', - organization = different_organization, - ) - - different_organization_team.permissions.set([ - view_permissions, - add_permissions, - change_permissions, - delete_permissions, - ]) - - TeamUsers.objects.create( - team = different_organization_team, - user = self.different_organization_user - ) - - - def test_add_is_prohibited_anon_user(self): - """ Ensure Organization cant be created - - Attempt to create organization as anon user - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_list) - - - # client.force_login(self.add_user) - response = client.post(url, data={'name': 'should not create'}, content_type='application/json') - - assert response.status_code == 401 - - - def test_add_is_prohibited_diff_org_user(self): - """ Ensure Organization cant be created - - Attempt to create organization as user with different org permissions. - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_list) - - - client.force_login(self.different_organization_user) - response = client.post(url, data={'name': 'should not create'}, content_type='application/json') - - assert response.status_code == 405 - - - def test_add_is_prohibited_super_user(self): - """ Ensure Organization cant be created - - Attempt to create organization as user who is super user - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_list) - - - client.force_login(self.super_user) - response = client.post(url, data={'name': 'should not create'}, content_type='application/json') - - assert response.status_code == 405 - - - def test_add_is_prohibited_user_same_org(self): - """ Ensure Organization cant be created - - Attempt to create organization as user with permission - """ - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_list) - - - client.force_login(self.add_user) - response = client.post(url, data={'name': 'should not create'}, content_type='application/json') - - assert response.status_code == 405 diff --git a/app/access/tests/unit/team/test_team_api.py b/app/access/tests/unit/team/test_team_api.py deleted file mode 100644 index 5507e452..00000000 --- a/app/access/tests/unit/team/test_team_api.py +++ /dev/null @@ -1,318 +0,0 @@ -import django -import pytest -import unittest -import requests - - -from django.contrib.auth import get_user_model -from django.contrib.auth.models import AnonymousUser, Permission -from django.contrib.contenttypes.models import ContentType -from django.shortcuts import reverse -from django.test import Client, TestCase - -from rest_framework.relations import Hyperlink - -from access.models.tenant import Tenant as Organization -from access.models.team import Team -from access.models.team_user import TeamUsers - -# from api.tests.abstract.api_permissions import APIPermissions - -User = django.contrib.auth.get_user_model() - - - -class TeamAPI(TestCase): - - model = Team - - app_namespace = 'v1' - - url_name = '_api_team' - - # url_list = '_api_organization_teams' - - # change_data = {'name': 'device'} - - # delete_data = {'device': 'device'} - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. Create an organization for user and item - . create an organization that is different to item - 2. Create a team - 3. create teams with each permission: view, add, change, delete - 4. create a user per team - """ - - organization = Organization.objects.create(name='test_org') - - self.organization = organization - - different_organization = Organization.objects.create(name='test_different_organization') - - - self.item = self.model.objects.create( - organization=organization, - team_name = 'teamone', - model_notes = 'random note' - ) - - - self.url_kwargs = {'organization_id': self.organization.id} - - self.url_view_kwargs = {'organization_id': self.organization.id, 'group_ptr_id': self.item.id} - - self.add_data = {'team_name': 'team_post'} - - - view_permissions = Permission.objects.get( - codename = 'view_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - # view_team = Team.objects.create( - # team_name = 'view_team', - # organization = organization, - # ) - - self.item.permissions.set([view_permissions]) - - self.view_user = User.objects.create_user(username="test_user_view", password="password") - teamuser = TeamUsers.objects.create( - team = self.item, - user = self.view_user - ) - - client = Client() - url = reverse(self.app_namespace + ':' + self.url_name, kwargs=self.url_view_kwargs) - - - client.force_login(self.view_user) - response = client.get(url) - - self.api_data = response.data - - - - def test_api_field_exists_id(self): - """ Test for existance of API Field - - id field must exist - """ - - assert 'id' in self.api_data - - - def test_api_field_type_id(self): - """ Test for type for API Field - - id field must be int - """ - - assert type(self.api_data['id']) is int - - - def test_api_field_exists_team_name(self): - """ Test for existance of API Field - - team_name field must exist - """ - - assert 'team_name' in self.api_data - - - def test_api_field_type_name(self): - """ Test for type for API Field - - team_name field must be str - """ - - assert type(self.api_data['team_name']) is str - - - def test_api_field_exists_model_notes(self): - """ Test for existance of API Field - - model_notes field must exist - """ - - assert 'model_notes' in self.api_data - - - def test_api_field_type_model_notes(self): - """ Test for type for API Field - - model_notes field must be str - """ - - assert type(self.api_data['model_notes']) is str - - - def test_api_field_exists_url(self): - """ Test for existance of API Field - - url field must exist - """ - - assert 'url' in self.api_data - - - def test_api_field_type_url(self): - """ Test for type for API Field - - url field must be str - """ - - assert type(self.api_data['url']) is str - - - def test_api_field_exists_permissions(self): - """ Test for existance of API Field - - permissions field must exist - """ - - assert 'permissions' in self.api_data - - - def test_api_field_type_permissions(self): - """ Test for type for API Field - - url field must be list - """ - - assert type(self.api_data['permissions']) is list - - - - def test_api_field_exists_permissions_id(self): - """ Test for existance of API Field - - permissions.id field must exist - """ - - assert 'id' in self.api_data['permissions'][0] - - - def test_api_field_type_permissions_id(self): - """ Test for type for API Field - - permissions.id field must be int - """ - - assert type(self.api_data['permissions'][0]['id']) is int - - - def test_api_field_exists_permissions_name(self): - """ Test for existance of API Field - - permissions.name field must exist - """ - - assert 'name' in self.api_data['permissions'][0] - - - def test_api_field_type_permissions_name(self): - """ Test for type for API Field - - permissions.name field must be str - """ - - assert type(self.api_data['permissions'][0]['name']) is str - - - def test_api_field_exists_permissions_codename(self): - """ Test for existance of API Field - - permissions.codename field must exist - """ - - assert 'codename' in self.api_data['permissions'][0] - - - def test_api_field_type_permissions_codename(self): - """ Test for type for API Field - - permissions.codename field must be str - """ - - assert type(self.api_data['permissions'][0]['codename']) is str - - - def test_api_field_exists_permissions_content_type(self): - """ Test for existance of API Field - - permissions.content_type field must exist - """ - - assert 'content_type' in self.api_data['permissions'][0] - - - def test_api_field_type_permissions_content_type(self): - """ Test for type for API Field - - permissions.content_type field must be dict - """ - - assert type(self.api_data['permissions'][0]['content_type']) is dict - - - - def test_api_field_exists_permissions_content_type_id(self): - """ Test for existance of API Field - - permissions.content_type.id field must exist - """ - - assert 'id' in self.api_data['permissions'][0]['content_type'] - - - def test_api_field_type_permissions_content_type_id(self): - """ Test for type for API Field - - permissions.content_type.id field must be int - """ - - assert type(self.api_data['permissions'][0]['content_type']['id']) is int - - - def test_api_field_exists_permissions_content_type_app_label(self): - """ Test for existance of API Field - - permissions.content_type.app_label field must exist - """ - - assert 'app_label' in self.api_data['permissions'][0]['content_type'] - - - def test_api_field_type_permissions_content_type_app_label(self): - """ Test for type for API Field - - permissions.content_type.app_label field must be str - """ - - assert type(self.api_data['permissions'][0]['content_type']['app_label']) is str - - - def test_api_field_exists_permissions_content_type_model(self): - """ Test for existance of API Field - - permissions.content_type.model field must exist - """ - - assert 'model' in self.api_data['permissions'][0]['content_type'] - - - def test_api_field_type_permissions_content_type_model(self): - """ Test for type for API Field - - permissions.content_type.model field must be str - """ - - assert type(self.api_data['permissions'][0]['content_type']['model']) is str diff --git a/app/access/tests/unit/team/test_team_permission_api.py b/app/access/tests/unit/team/test_team_permission_api.py deleted file mode 100644 index dc7b205e..00000000 --- a/app/access/tests/unit/team/test_team_permission_api.py +++ /dev/null @@ -1,180 +0,0 @@ -import django -import pytest -import unittest -import requests - - -from django.contrib.auth import get_user_model -from django.contrib.auth.models import AnonymousUser, Permission -from django.contrib.contenttypes.models import ContentType -from django.test import TestCase - -from access.models.tenant import Tenant as Organization -from access.models.team import Team -from access.models.team_user import TeamUsers - -from api.tests.abstract.api_permissions import APIPermissions - -User = django.contrib.auth.get_user_model() - - - -class TeamPermissionsAPI(TestCase, APIPermissions): - - model = Team - - app_namespace = 'v1' - - url_name = '_api_team' - - url_list = '_api_organization_teams' - - change_data = {'name': 'device'} - - delete_data = {'device': 'device'} - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. Create an organization for user and item - . create an organization that is different to item - 2. Create a team - 3. create teams with each permission: view, add, change, delete - 4. create a user per team - """ - - organization = Organization.objects.create(name='test_org') - - self.organization = organization - - different_organization = Organization.objects.create(name='test_different_organization') - - - self.item = self.model.objects.create( - organization=organization, - name = 'teamone' - ) - - - self.url_kwargs = {'organization_id': self.organization.id} - - self.url_view_kwargs = {'organization_id': self.organization.id, 'group_ptr_id': self.item.id} - - self.add_data = {'team_name': 'team_post'} - - - view_permissions = Permission.objects.get( - codename = 'view_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - view_team = Team.objects.create( - team_name = 'view_team', - organization = organization, - ) - - view_team.permissions.set([view_permissions]) - - - - add_permissions = Permission.objects.get( - codename = 'add_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - add_team = Team.objects.create( - team_name = 'add_team', - organization = organization, - ) - - add_team.permissions.set([add_permissions]) - - - - change_permissions = Permission.objects.get( - codename = 'change_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - change_team = Team.objects.create( - team_name = 'change_team', - organization = organization, - ) - - change_team.permissions.set([change_permissions]) - - - - delete_permissions = Permission.objects.get( - codename = 'delete_' + self.model._meta.model_name, - content_type = ContentType.objects.get( - app_label = self.model._meta.app_label, - model = self.model._meta.model_name, - ) - ) - - delete_team = Team.objects.create( - team_name = 'delete_team', - organization = organization, - ) - - delete_team.permissions.set([delete_permissions]) - - - self.no_permissions_user = User.objects.create_user(username="test_no_permissions", password="password") - - - self.view_user = User.objects.create_user(username="test_user_view", password="password") - teamuser = TeamUsers.objects.create( - team = view_team, - user = self.view_user - ) - - self.add_user = User.objects.create_user(username="test_user_add", password="password") - teamuser = TeamUsers.objects.create( - team = add_team, - user = self.add_user - ) - - self.change_user = User.objects.create_user(username="test_user_change", password="password") - teamuser = TeamUsers.objects.create( - team = change_team, - user = self.change_user - ) - - self.delete_user = User.objects.create_user(username="test_user_delete", password="password") - teamuser = TeamUsers.objects.create( - team = delete_team, - user = self.delete_user - ) - - - self.different_organization_user = User.objects.create_user(username="test_different_organization_user", password="password") - - - different_organization_team = Team.objects.create( - team_name = 'different_organization_team', - organization = different_organization, - ) - - different_organization_team.permissions.set([ - view_permissions, - add_permissions, - change_permissions, - delete_permissions, - ]) - - TeamUsers.objects.create( - team = different_organization_team, - user = self.different_organization_user - )