Skip to content
Open
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
3 changes: 0 additions & 3 deletions BioForm/api/tests.py

This file was deleted.

Empty file added BioForm/api/tests/__init__.py
Empty file.
29 changes: 29 additions & 0 deletions BioForm/api/tests/test_setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from rest_framework.test import APITestCase
from django.urls import reverse

class TestSetup(APITestCase):

def setUp(self):
self.register_url = reverse('register-api')
self.login_url = reverse('login-api')
self.bio_url = reverse('api-bio-view')

self.user_data = {
'email':"musa.naeem@arbisoft.com",
'password':"kaneki",
'username':"musanaeem",
'date_of_birth': "1996-11-12",
}

self.bio_data = {
'name' : "Musa Naeem",
'address' : "random Address",
'description' : "description"
}

return super().setUp()

def tearDown(self):


return super().tearDown()
22 changes: 22 additions & 0 deletions BioForm/api/tests/test_urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from django.test import SimpleTestCase
from django.urls import resolve, reverse
from .. import views


class TestUrls(SimpleTestCase):

def test_login_url_is_resolved(self):
url = reverse('login-api')
self.assertEquals(resolve(url).func.view_class, views.LoginView)

def test_register_url_is_resolved(self):
url = reverse('register-api')
self.assertEquals(resolve(url).func.view_class, views.RegisterView)

def test_bio_url_is_resolved(self):
url = reverse('api-bio-view')
self.assertEquals(resolve(url).func.view_class, views.BioView)

def test_blog_url_is_resolved(self):
url = reverse('api:api-blog-view-list')
self.assertEquals(resolve(url).func.__name__, views.BlogViewSet.__name__)
56 changes: 56 additions & 0 deletions BioForm/api/tests/test_views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
from .test_setup import TestSetup

class TestViews(TestSetup):

def test_user_can_be_registered(self):
response = self.client.post(self.register_url, self.user_data, format='json')

self.assertEqual(response.data['email'], self.user_data['email'])
self.assertEqual(response.data['username'], self.user_data['username'])
self.assertEqual(response.data['date_of_birth'], self.user_data['date_of_birth'])
self.assertEqual(response.status_code, 200)

def test_user_cannot_login_without_data(self):
response = self.client.post(self.login_url)

self.assertEqual(response.status_code, 400)

def test_user_can_login(self):
self.client.post(self.register_url, self.user_data, format='json')
response = self.client.post(self.login_url, self.user_data, format='json')

self.assertEqual(response.status_code, 200)

def authentication_user_and_add_bio(self):
self.test_user_can_login()
self.client.post(self.bio_url, self.bio_data, format='json')

def test_bio_unauthenticated(self):
response = self.client.get(self.bio_url)

self.assertEqual(response.status_code, 403)

def test_bio_GET(self):
self.authentication_user_and_add_bio()

response = self.client.get(self.bio_url)

self.assertIn(response.status_code, [200, 404])
self.assertEqual(response.data['name'], self.bio_data['name'])
self.assertEqual(response.data['address'], self.bio_data['address'])
self.assertEqual(response.data['description'], self.bio_data['description'])

def test_bio_PATCH(self):
self.authentication_user_and_add_bio()

response = self.client.patch(self.bio_url, {'name': "Musa Naeem Sahaf"})

self.assertEqual(response.status_code, 200)
self.assertEqual(response.data['name'], "Musa Naeem Sahaf")


def test_bio_DELETE(self):
self.authentication_user_and_add_bio()

response = self.client.delete(self.bio_url)
self.assertEqual(response.data['message'], "Deletion Successful!")
14 changes: 6 additions & 8 deletions BioForm/api/urls.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
from django.urls import path
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from . import views
from .views import BlogViewSet

app_name = 'api'

router = DefaultRouter()
router.register('api/blog',BlogViewSet, basename='api-blog-view')
router.register(r'api/blog',BlogViewSet, basename='api-blog-view')

urlpatterns = [
path('api/login/', views.LoginView.as_view()),
path('api/register/', views.RegisterView.as_view()),
path('api/logout/', views.LogoutView.as_view()),
path('api/login/', views.LoginView.as_view(), name='login-api'),
path('api/register/', views.RegisterView.as_view(), name='register-api'),
path('api/logout/', views.LogoutView.as_view(), name='logout-api'),

path('api/bio/', views.BioView.as_view(), name='api-bio-view'),
path('', include((router.urls, 'api'))),
]

urlpatterns += router.urls
8 changes: 8 additions & 0 deletions BioForm/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ def post(self, request):

class LoginView(APIView):
def post(self, request):

if not request.data.get('email') or not request.data.get('password'):
return Response(
{'detail': 'Data not sent!',
'status': '400'},
status=status.HTTP_400_BAD_REQUEST
)

email = request.data['email']
password = request.data['password']

Expand Down