Skip to content

Commit 8a0e8aa

Browse files
committed
fix: change for tests
1 parent 73d935a commit 8a0e8aa

File tree

7 files changed

+79
-11
lines changed

7 files changed

+79
-11
lines changed

apps/users/api_endpoints/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44

55

66
router = routers.DefaultRouter()
7-
router.register("user", UserViewSet)
8-
router.register("user_profile", UserProfileViewSet)
7+
router.register("user", UserViewSet, basename="user")
8+
router.register("user_profile", UserProfileViewSet, basename="user_profile")

apps/users/api_endpoints/users/User/serializers.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ class Meta:
3131
"is_active",
3232
"is_superuser",
3333
"is_staff",
34-
"post_count",
3534
"profiles",
3635
"created_at",
3736
"updated_at",
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
from rest_framework.test import APITestCase
2+
from rest_framework_simplejwt.tokens import RefreshToken, AccessToken
3+
4+
from django.urls import reverse
5+
6+
from apps.users.models import User
7+
8+
# Authorizations
9+
# self.client.credentials(HTTP_AUTHORIZATION=f"Bearer {self.token}")
10+
11+
class UsersApiTestCase(APITestCase):
12+
def setUp(self) -> None:
13+
self.username = "Admin"
14+
self.email = "admin@example.com"
15+
self.password = "password"
16+
17+
user = User.objects.create(
18+
username=self.username,
19+
email=self.email,
20+
)
21+
user.set_password(self.password)
22+
user.save()
23+
self.user = user
24+
refresh = RefreshToken.for_user(self.user)
25+
self.token = str(refresh.access_token)
26+
return super().setUp()
27+
28+
def test_api_tokens(self):
29+
data = {
30+
"username": "Admin",
31+
"password": "password",
32+
}
33+
response = self.client.post(reverse("token_obtain_pair"), data=data)
34+
tokens = dict(response.json())
35+
refresh = tokens.get("refresh")
36+
access = tokens.get("access")
37+
38+
# Test jwt access token
39+
jwt_access = AccessToken(access)
40+
self.assertEqual(self.user.id, jwt_access["user_id"])
41+
42+
# Test jwt refresh token
43+
jwt_refresh = RefreshToken(refresh)
44+
self.assertEqual(self.user.id, jwt_refresh.for_user(self.user).access_token["user_id"])
45+
46+
self.assertEqual(response.status_code, 200)
47+
48+
# def test_api_user_create(self):
49+
# url = "/api/v1/users/user/"
50+
# def check_user():
51+
# data = {
52+
# "username": "Admin2",
53+
# "email": "admin2@example.com",
54+
# "password": "password",
55+
# "password_confirm": "password"
56+
# }
57+
58+
# invalid_data = {
59+
# "username": self.username,
60+
# "email": self.email,
61+
# "password": self.password,
62+
# "password_confirm": self.password
63+
# }
64+
65+
# response = self.client.post(url, data=valid_data)
66+
67+
68+
# print(response.status_code)
69+
# print(response.json())
70+

apps/users/api_endpoints/users/User/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from apps.users.models import User
55
from .serializers import UserSerializer
6-
from .permissions import IsOwnerPermission
6+
from apps.users.permissions import IsOwnerPermission
77

88

99
class UserViewSet(viewsets.ModelViewSet):
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
from rest_framework import viewsets
2+
from rest_framework.permissions import IsAuthenticated, IsAdminUser
23

34
from apps.users.models import UserProfile
5+
from apps.users.permissions import IsOwnerPermission
46
from .serializers import UserProfileSerializer
57

68

79
class UserProfileViewSet(viewsets.ModelViewSet):
810
queryset = UserProfile.objects.all()
911
serializer_class = UserProfileSerializer
1012

13+
def get_permissions(self):
14+
return [IsAuthenticated(), IsAdminUser(), IsOwnerPermission()]
15+
1116
__all__ = ("UserProfileViewSet", )

apps/users/api_endpoints/users/User/permissions.py renamed to apps/users/permissions.py

File renamed without changes.

apps/users/urls.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
from django.urls import path, include
1+
from django.urls import path
22

3-
from .api_endpoints import router
43
from . import views
54

6-
from rest_framework_simplejwt.views import (
7-
TokenObtainPairView,
8-
TokenRefreshView
9-
)
10-
115

126
app_name = "users"
137

0 commit comments

Comments
 (0)