Skip to content

Commit

Permalink
fix forgetten references of org access
Browse files Browse the repository at this point in the history
  • Loading branch information
dpgraham4401 committed Jul 25, 2024
1 parent 836f154 commit ee8230a
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 45 deletions.
22 changes: 3 additions & 19 deletions server/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from core.models import (
TrakUser,
)
from org.models import Org, OrgAccess, Site
from org.models import Org, Site
from rcrasite.models import (
Address,
Contact,
Expand Down Expand Up @@ -347,7 +347,7 @@ def user_with_org_factory(
org_factory,
rcrainfo_profile_factory,
profile_factory,
org_access_factory,
perm_factory,
):
"""Fixture for creating a user with an org that has set up RCRAInfo integration"""

Expand All @@ -369,29 +369,13 @@ def create_fixtures(
admin = user_factory(username="admin")
admin_rcrainfo_profile or rcrainfo_profile_factory(**rcra_profile_data)
org = org or org_factory(admin=admin)
org_access_factory(org=org, user=user)
perm_factory(user, ["org.view_org"], org)
profile_factory(user=user)
return user, org

return create_fixtures


@pytest.fixture
def org_access_factory(db, user_factory, org_factory):
"""Abstract factory for creating a model that represents a user's access to an organization"""

def create_permission(
org: Optional[Org] = None,
user: Optional[TrakUser] = None,
) -> OrgAccess:
return OrgAccess.objects.create(
org=org or org_factory(),
user=user or user_factory(),
)

return create_permission


@pytest.fixture(autouse=True)
def use_local_mem_cache_backend(settings):
settings.CACHES = {
Expand Down
6 changes: 3 additions & 3 deletions server/org/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ def user(self, user_factory):
def org(self, org_factory):
return org_factory()

def test_get_returns_org_details(self, org, org_access_factory, user):
org_access_factory(org=org, user=user)
def test_get_returns_org_details(self, org, user, perm_factory):
perm_factory(user, ["org.view_org"], org)
request = self.factory.get(reverse("org:details", args=[org.id]))
force_authenticate(request, user)
response = OrgDetailsView.as_view()(request, org_id=org.id)
assert response.status_code == status.HTTP_200_OK
assert response.data["id"] == org.id

def test_404_when_org_id_not_defined(self, org, org_access_factory, user):
def test_404_when_org_id_not_defined(self, org, user):
request = self.factory.get(reverse("org:details", args=["foo"]))
force_authenticate(request, user)
with patch("org.views.get_org_by_id") as mock_org:
Expand Down
7 changes: 0 additions & 7 deletions server/profile/serializers/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,16 @@
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer

from org.serializers import OrgSerializer


class ProfileSerializer(ModelSerializer):
"""Serializer for a user's profile"""

user = serializers.StringRelatedField(
required=False,
)
org = OrgSerializer(
source="user.org_permissions.org",
required=False,
)

class Meta:
model = Profile
fields = [
"user",
"org",
]
16 changes: 0 additions & 16 deletions server/profile/tests/test_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,6 @@ def test_serializer_includes_username(self, profile_factory, user_factory):
serializer = ProfileSerializer(profile)
assert serializer.data["user"] == my_username

def test_org_returns_null(self, profile_factory, user_factory, org_factory):
user = user_factory()
profile = profile_factory(user=user)
serializer = ProfileSerializer(profile)
assert serializer.data["org"] is None

def test_returns_the_user_org(
self, profile_factory, user_factory, org_factory, org_access_factory
):
user = user_factory()
org = org_factory()
org_access_factory(user=user, org=org)
profile = profile_factory(user=user)
serializer = ProfileSerializer(profile)
assert serializer.data["org"]["name"] == org.name


class TestRcraSitePermissionSerializer:
"""This Test suite is for haztrak's internal record of user's RCRAInfo site permissions."""
Expand Down

0 comments on commit ee8230a

Please sign in to comment.