def test_get_user_detail(self): factory = APIRequestFactory() view = UserDetail.as_view() user = User.objects.create(id=2, username='******', password='******', email='*****@*****.**') request = factory.get('/api/users/2') force_authenticate(request, user=self.test_user, token=self.full_access_token) response = view(request, pk='2') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(user.username, response.data['username']) self.assertEqual(user.email, response.data['email']) force_authenticate(request, user=self.test_user, token=self.read_access_token) response = view(request, pk='2') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(user.username, response.data['username']) self.assertEqual(user.email, response.data['email'])
def test_user_not_found(self): factory = APIRequestFactory() view = UserDetail.as_view() request = factory.put('/api/users/10') force_authenticate(request, user=self.test_user, token=self.full_access_token) response = view(request, pk='10') self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) request = factory.delete('/api/users/10') force_authenticate(request, user=self.test_user, token=self.full_access_token) response = view(request, pk='10') self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_update_user_fail_by_user_with_read_scope_only(self): factory = APIRequestFactory() view = UserDetail.as_view() user = User.objects.create(id=2, username='******', password='******', email='*****@*****.**') data = {'id': user.id, 'username': '******', 'email': '*****@*****.**'} request = factory.put('/api/users/2', data) force_authenticate(request, user=self.test_user, token=self.read_access_token) response = view(request, pk='2') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def user_delete_user(self, user_id=None, user=None, token=None, user_data=None): if not user_id: _, content = self.signup_view(user_data) user_id = content['id'] token = self.login(user_data) user = User.objects.get(pk=user_id) request = APIRequestFactory().delete('api/users/', content_type='application/json') force_authenticate(request, user, token) response = UserDetail.as_view()(request, pk=user_id).render() return response
def test_delete_user_fail_by_user_with_read_scope_only(self): factory = APIRequestFactory() view = UserDetail.as_view() User.objects.bulk_create([ User(id=2, username='******', password='******', email='*****@*****.**'), User(id=3, username='******', password='******', email='*****@*****.**'), User(id=4, username='******', password='******', email='*****@*****.**') ]) request = factory.delete('/api/users/2') force_authenticate(request, user=self.test_user, token=self.read_access_token) response = view(request, pk='2') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def user_update_user(self, user_id=None, user=None, token=None, user_data=None): if not user_id: _, content = self.signup_view(user_data) user_id = content['id'] token = self.login(user_data) user = User.objects.get(pk=user_id) body = self.TEST_DATA_2 request = APIRequestFactory().put('api/users/', data=json.dumps(body), content_type='application/json') force_authenticate(request, user, token) response = UserDetail.as_view()(request, pk=user_id).render() content = eval(response.content.decode()) return response, content
def test_delete_user(self): factory = APIRequestFactory() view = UserDetail.as_view() users = User.objects.bulk_create([ User(id=2, username='******', password='******', email='*****@*****.**'), User(id=3, username='******', password='******', email='*****@*****.**'), User(id=4, username='******', password='******', email='*****@*****.**'), ]) user = users[0] request = factory.delete('/api/users/2') force_authenticate(request, user=self.test_user, token=self.full_access_token) response = view(request, pk='2') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(len(User.objects.all()), 3) self.assertNotIn(user, User.objects.all())
}, { 'func': 'xml', 'serializer_class': None }, { 'func': 'get_refsdecls', 'serializer_class': RefsDeclSerializer }, ], extra={ 'model': Text, 'serializer_class': TextSerializer }))), url(r'^users/$', UserList.as_view(), name='user-list'), url(r'^users/(?P<pk>\d+)/$', UserDetail.as_view(), name='user-detail'), url( r'^users/(?P<pk>\d+)/', include( APIView.urlpatterns([ { 'func': 'communities', 'serializer_class': CommunitySerializer }, { 'func': 'can_edit', 'func_args': '(?P<doc_pk>\d+)/' }, { 'func': 'memberships', 'serializer_class': MembershipSerializer
from api.views import CategoryDetail, SubcategoryDetail, UserList, UserDetail, \ CityList, CategoryList, SubCategoryList, CityDetail, ListCreateListing, \ DetailUpdateDeleteListing from rest_framework.authtoken import views from django.conf.urls import url, include urlpatterns = [ url(r'^api-token-auth/$', views.obtain_auth_token), url(r'^docs/', include('rest_framework_swagger.urls')), url(r'^users/$', UserList.as_view(), name="list_user"), url(r'^users/(?P<pk>\d+)/$', UserDetail.as_view(), name="detail_user"), url(r'^cities/(?P<pk>\d+)/$', CityDetail.as_view(), name="detail_city"), url(r'^cities/$', CityList.as_view(), name="city_list"), url(r'^categories/$', CategoryList.as_view(), name="list_category"), url(r'^categories/(?P<pk>\d+)/$', CategoryDetail.as_view(), name="detail_category"), url(r'^subcategories/$', SubCategoryList.as_view(), name="subcategory_list"), url(r'^subcategories/(?P<pk>\d+)/$', SubcategoryDetail.as_view(), name="subdetail_category"), url(r'^classifieds/$', ListCreateListing.as_view(), name="list_create_listing"), url(r'^classifieds/(?P<pk>\d+)/$', DetailUpdateDeleteListing.as_view(), name="detail_update_delete_listing") ]
from django.conf.urls import url, include from api.views import UserList, PostDetail, PostList, UserPostList, UserDetail, PostPhotoList, PhotoList, PhotoDetail # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. users_urls = [ url(r'^$', UserList.as_view(), name='user-list'), url(r'^(?P<username>[0-9a-zA-Z_-]+)/$', UserDetail.as_view(), name='user-detail'), url(r'^(?P<username>[0-9a-zA-Z_-]+)/posts/$', UserPostList.as_view(), name='userpost-list'), ] posts_urls = [ url(r'^$', PostList.as_view(), name='post-list'), url(r'^(?P<pk>\d+)/photos/$', PostPhotoList.as_view(), name='postphoto-list'), url(r'^(?P<pk>\d+)/$', PostDetail.as_view(), name='post-detail'), ] photos_urls = [ url(r'^(?P<pk>\d+)/$', PhotoDetail.as_view(), name='photo-detail'), url(r'^$', PhotoList.as_view(), name='photo-list'), ] urlpatterns = [ url(r'^users/', include(users_urls)), url(r'^posts/', include(posts_urls)), url(r'^photos/', include(photos_urls)), ]
from api.views import ListCreateSurvey, RetrieveUpdateDestroySurvey, UserDetail, ChangePassword, RegisterUser, \ ListCreateQuestion, RetrieveUpdateDestroyQuestion, TakeSurvey, MyDetail surveys = [ path('', ListCreateSurvey.as_view()), path('<int:pk>', RetrieveUpdateDestroySurvey.as_view()), ] questions = [ path('', ListCreateQuestion.as_view()), path('<int:pk>', RetrieveUpdateDestroyQuestion.as_view()), ] token = [ path('obtain', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('refresh', TokenRefreshView.as_view(), name='token_refresh'), path('verify', TokenVerifyView.as_view(), name='token_verify'), ] urlpatterns = [ path('take-survey/<int:pk>', TakeSurvey.as_view()), path('surveys/', include(surveys)), path('questions/', include(questions)), path('token/', include(token)), path('account', MyDetail.as_view()), path('account/<int:pk>', UserDetail.as_view()), path('register', RegisterUser.as_view()), path('set-password', ChangePassword.as_view()) ]
EmployeeCreate, DepartmentCreate, ) urlpatterns = [ url(r'^complaints/$', ComplaintList.as_view()), url(r'^complaints/create/$', ComplaintCreate.as_view()), url(r'^complaints/delete/$', ComplaintDelete.as_view()), url(r'^complaints/complete/(?P<pk>[0-9a-zA-Z\-]+)/$', ComplaintComplete.as_view()), url(r'^complaints/(?P<pk>[0-9a-zA-z\-]+)/$', ComplaintDetail.as_view()), url(r'^users/$', UserList.as_view()), url(r'^users/create/$', UserCreate.as_view()), url(r'^users/delete/$', UserCreate.as_view()), url(r'^users/change_password/$', UserChangePassword.as_view()), url(r'^userdetail/$', UserDetail.as_view()), url(r'^userdetail/update/$', UserDetail.as_view()), url(r'^blockdetails/$', BlockOnlyDetail.as_view()), url(r'^floordetails/$', FloorOnlyDetail.as_view()), url(r'^departments/$', DepartmentList.as_view()), url(r'^departments/create/$', DepartmentCreate.as_view()), url(r'^departments/delete/(?P<pk>[0-9a-zA-Z\-]+)/$', DepartmentCreate.as_view()), url(r'^departments/(?P<pk>[0-9a-zA-Z\-]+)/$', DepartmentDetail.as_view()), url(r'^employees/$', EmployeeList.as_view()), url(r'^employees/create/$', EmployeeCreate.as_view()), url(r'^employees/delete/(?P<pk>[0-9a-zA-Z\-]+)/$', EmployeeCreate.as_view()), url(r'^employees/(?P<pk>[0-9a-zA-Z\-]+)/$', EmployeeDetail.as_view()), url(r'^blocks/$', BlockList.as_view()), url(r'^blocks/create/$', BlockCreate.as_view()),
"""mysite URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.0/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from django.conf.urls import url from api.views import UserList, UserDetail urlpatterns = [ path('admin/', admin.site.urls), url(r'^api/users/$', UserList.as_view(), name="User_list"), #path('api/users/<str:name>', UserList.as_view(), name="User_list"), url(r'^api/users/(?P<id>\d+)/$', UserDetail.as_view(), name="User_Detail"), ]
from django.conf.urls import patterns, include, url from django.contrib import admin from api.views import APIRoot, UserProfile, UserDetail, AuthToken admin.autodiscover() urlpatterns = patterns('', # Django Rest Login Urls url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), # Queue Application url(r'^queue/', include('queue.urls')), url(r'^catalog/', include('catalog.urls')), url(r'^data_store/',include('data_store.urls')), # Admin Urls url(r'^admin/', include(admin.site.urls)), # Main Project View - Customize depending on what Apps are enabled url(r'^$', APIRoot.as_view()), url(r'^/\.(?P<format>(api|json|jsonp|xml|yaml))/$', APIRoot.as_view()), url(r'^user/',UserProfile.as_view(),name='user-list'), url(r'^user/(?P<id>[0-9]+)/$',UserDetail.as_view(),name='user-detail'), #url(r'^usertoken/', AuthToken.as_view(), name='token-detail'), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), ) #urlpatterns1 = patterns(url(r'^$', APIRoot.as_view()), # url(r'^/\.(?P<format>(api|json|jsonp|xml|yaml))/$', APIRoot.as_view()),) #print urlpatterns1 #urlpatterns = format_suffix_patterns(, allowed=['api','json','jsonp', 'xml','yaml'])
url(r'^texts/$', TextList.as_view(), name='text-list'), url(r'^texts/(?P<pk>\d+)/$', TextDetail.as_view()), url(r'^texts/(?P<pk>\d+)/', include(APIView.urlpatterns([ {}, {'func': 'next'}, {'func': 'prev'}, {'func': 'parent'}, {'func': 'has_parts'}, {'func': 'is_text_in', 'serializer_class': DocSerializer}, {'func': 'is_text_of', 'serializer_class': EntitySerializer}, {'func': 'xml', 'serializer_class': None}, {'func': 'get_refsdecls', 'serializer_class': RefsDeclSerializer}, ], extra={'model': Text, 'serializer_class': TextSerializer}))), url(r'^users/$', UserList.as_view(), name='user-list'), url(r'^users/(?P<pk>\d+)/$', UserDetail.as_view(), name='user-detail'), url(r'^users/(?P<pk>\d+)/', include(APIView.urlpatterns([ {'func': 'communities', 'serializer_class': CommunitySerializer}, {'func': 'can_edit', 'func_args': '(?P<doc_pk>\d+)/'}, { 'func': 'memberships', 'serializer_class': MembershipSerializer }, { 'func': 'memberships', 'func_args': '(?P<community_pk>\d+)/', 'serializer_class': MembershipSerializer, }, ], extra={'model': APIUser, 'serializer_class': APIUserSerializer}))), url(r'^tasks/(?P<pk>\d+)/$', TaskDetail.as_view()), url(r'^memberships/$', MembershipList.as_view()), url(r'^memberships/(?P<pk>\d+)/$', MembershipDetail.as_view()),
from django.urls import path, include from rest_framework import routers from api.views import DefectViewSet, UserDetail, MaintenanceStateDetail router = routers.DefaultRouter() router.register('defect', DefectViewSet) urlpatterns = [ path('', include(router.urls)), path('user/<int:pk>/', UserDetail.as_view()), path('maintenance/', MaintenanceStateDetail.as_view(), name="maintenance"), ]
from allauth.account.views import confirm_email from django.conf.urls import url from django.urls import path, include from api.views import UserList, UserDetail, ProfileDetail urlpatterns = [ path('rest-auth/', include('rest_auth.urls')), url(r'^rest-auth/registration/', include('rest_auth.registration.urls')), url(r'^verify-email/(?P<key>[\w@+-:]+)/$', confirm_email, name="account_confirm_email"), url(r'^user/$', UserList.as_view(), name="users_list"), url(r'^user/(?P<pk>[\w]+)/$', UserDetail.as_view(), name="user_detail"), url(r'^profile/(?P<user>[\w]+)/$', ProfileDetail.as_view(), name="profile_detail"), ]
from django.conf.urls import include, url, patterns from django.contrib import admin from rest_framework import routers from api.views import UserDetail,UserList,AuthView,logoutView,UserSignup from django.conf import settings from django.conf.urls.static import static #router = routers.DefaultRouter() #router.register(r'user', UserView, 'list') urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^user/login/$',AuthView.as_view()), url(r'^user/logout/$',logoutView), url(r'^user/signup/$',UserSignup.as_view()), url(r'^user/$', UserList.as_view()), url(r'^user/(?P<pk>[0-9]+)/$', UserDetail.as_view()), # url(r'^', include(router.urls)), ) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
from rest_framework import routers from api.views import UserAPIView, UserDetail, UserViewSet, RoomAPIView, RoomDetail, RoomViewSet, FavoritesDetail, Search # Api from api.views import UserViewSet """ DefaultRouter will define the standard REST GET, POST, PUT, DELETE... """ router = routers.DefaultRouter() router.register(r'user', UserViewSet, basename='user') router.register(r'room', RoomViewSet, basename='room') urlpatterns = [ url(r'^', include(router.urls)), url(r'^auth/', include('rest_auth.urls')), url('viewset/', include(router.urls)), url('user/', UserAPIView.as_view()), url('room/', RoomAPIView.as_view()), # UserDetail shows user detail url('user_detail/<int:id>/', UserDetail.as_view()), url('room_detail/<int:id>/', RoomDetail.as_view()), # Favorites url('favorites/<int:id_user>,<int:id_room>/', FavoritesDetail.as_view()), url('favorites/<int:id>/', FavoritesDetail.as_view()), # Search url('search/<str:location>/', Search.as_view()), ]
from django.urls import path from rest_framework.urlpatterns import format_suffix_patterns from api import views from api.views import (TodoList, TodoDetail, UserList, UserDetail) app_name = 'api' urlpatterns = [ # path('todo/', views.todo_list, name='todo_list'), # path('todo/<int:pk>', views.todo_detail, name='todo_detail'), path('', views.api_root), path('todo/', TodoList.as_view(), name='todo-list'), path('todo/<int:pk>', TodoDetail.as_view(), name='todo-detail'), path('user/', UserList.as_view(), name='user-list'), path('user/<int:pk>', UserDetail.as_view(), name='user-detail'), ] urlpatterns = format_suffix_patterns(urlpatterns)
from api.views import ChirpListCreateView, ChirpDetailAndUpdate, UserList, \ UserDetail from django.conf.urls import url from rest_framework.urlpatterns import format_suffix_patterns __author__ = 'jeff' urlpatterns = [ url(r'^chirps/$', ChirpListCreateView.as_view(), name='api_chirp_list'), url(r'^chirps/(?P<pk>[0-9]+)/', ChirpDetailAndUpdate.as_view(), name='api_chirp_detail'), url(r'^users/$', UserList.as_view(), name='user_list'), url(r'^users/(?P<pk>[0-9]+)/', UserDetail.as_view(), name='user_detail'), url(r'^github/(?P<username>\w+)/$', 'api.views.github_user'), url(r'^github/(?P<username>\w+)/repos/$', 'api.views.github_repo') ] urlpatterns = format_suffix_patterns(urlpatterns)
from django.conf.urls import url, include from django.contrib import admin from api.views import UserList, UserDetail, ProfileList, ProfileDetail, JobPostingList, \ JobPostingDetail, JobApplicationList, JobApplicationDetail, InviteViaEmail, ProfileRecommendations, \ EducationDescriptionList, EducationDescriptionDetail, EmploymentDescriptionList, EmploymentDescriptionDetail, \ SkillList, SkillDetail, CompanyList, CompanyDetail, ForgottenPasswordEmail, ResetPassword, Search, RegisterConnection, \ ConnectionList, ProfileImageList, ProfileApplicationIDs, ProfileApplicationList, FeedPostList, UserJobPostingsList, \ ChangePassword, DeleteConnection urlpatterns = [ url(r'^users/$', UserList.as_view()), url(r'^users/(?P<username>[a-zA-Z][a-zA-Z0-9_]+)/$', UserDetail.as_view()), url(r'^users/(?P<username>[a-zA-Z][a-zA-Z0-9_]+)/change-password/$', ChangePassword.as_view()), url(r'^profiles/$', ProfileList.as_view()), url(r'^profiles/(?P<username>[a-zA-Z][a-zA-Z0-9_]+)/$', ProfileDetail.as_view()), url(r'^profiles/(?P<username>[a-zA-Z][a-zA-Z0-9_]+)/recommendations/$', ProfileRecommendations.as_view()), url(r'^profiles/(?P<username>[a-zA-Z][a-zA-Z0-9_]+)/application_ids/$', ProfileApplicationIDs.as_view()), url(r'^jobs/$', JobPostingList.as_view()), url(r'^jobs/(?P<job_id>[0-9]+)/$', JobPostingDetail.as_view()), url(r'^jobs/(?P<job_id>[0-9]+)/applications/$', JobApplicationList.as_view()), url(r'^jobs/(?P<job_id>[0-9]+)/applications/(?P<application_id>[0-9]+)/$', JobApplicationDetail.as_view()), url(r'^send-invite/$', InviteViaEmail.as_view()), url(r'^forgot-password/$', ForgottenPasswordEmail.as_view()), url(r'^reset-password/$', ResetPassword.as_view()),
from django.conf.urls import url, include from api.views import UserList, PostDetail, PostList, UserPostList, UserDetail, PostPhotoList, PhotoList, PhotoDetail # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. users_urls = [ url(r'^$', UserList.as_view(), name='user-list'), url(r'^(?P<username>[0-9a-zA-Z_-]+)/$', UserDetail.as_view(), name='user-detail'), url(r'^(?P<username>[0-9a-zA-Z_-]+)/posts/$', UserPostList.as_view(), name='userpost-list'), ] posts_urls = [ url(r'^$', PostList.as_view(), name='post-list'), url(r'^(?P<pk>\d+)/photos/$', PostPhotoList.as_view(), name='postphoto-list'), url(r'^(?P<pk>\d+)/$', PostDetail.as_view(), name='post-detail'), ] photos_urls = [ url(r'^(?P<pk>\d+)/$', PhotoDetail.as_view(), name='photo-detail'), url(r'^$', PhotoList.as_view(), name='photo-list'), ] urlpatterns = [
Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from api.views import AdDetail from api.views import FavouriteDetail from api.views import UserDetail from api.views import ProductFilterDetail from api.views import ProductSearch from api.views import CategoryDetail from django.conf.urls import url, include urlpatterns = [ path('admin/', admin.site.urls), url(r'^api/product/ad', AdDetail.as_view()), url(r'^api/favourite', FavouriteDetail.as_view()), url(r'^api/product/filter', ProductFilterDetail.as_view()), url(r'^api/product/find', ProductSearch.as_view()), url(r'^api/user', UserDetail.as_view()), url(r'^api/category', CategoryDetail.as_view()), ]