Base
This commit is contained in:
27
user/user_auth_system/user_management/tests/test_search.py
Normal file
27
user/user_auth_system/user_management/tests/test_search.py
Normal file
@ -0,0 +1,27 @@
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth import get_user_model
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from your_app.models import Source, Tag
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
class SearchTests(APITestCase):
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(username='testuser', password='testpassword123')
|
||||
self.client.force_authenticate(user=self.user)
|
||||
self.tag = Tag.objects.create(name='covid')
|
||||
self.source = Source.objects.create(
|
||||
title='COVID-19 Research',
|
||||
url='https://example.com/covid',
|
||||
description='Latest research on COVID-19',
|
||||
added_by=self.user
|
||||
)
|
||||
self.source.tags.add(self.tag)
|
||||
|
||||
def test_search_source(self):
|
||||
url = reverse('search')
|
||||
response = self.client.get(url, {'q': 'COVID'})
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data), 1)
|
||||
self.assertEqual(response.data[0]['title'], 'COVID-19 Research')
|
||||
35
user/user_auth_system/user_management/tests/test_sources.py
Normal file
35
user/user_auth_system/user_management/tests/test_sources.py
Normal file
@ -0,0 +1,35 @@
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth import get_user_model
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from your_app.models import Source, Tag
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
class SourceTests(APITestCase):
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(username='testuser', password='testpassword123')
|
||||
self.client.force_authenticate(user=self.user)
|
||||
self.tag = Tag.objects.create(name='test_tag')
|
||||
|
||||
def test_create_source(self):
|
||||
url = reverse('source-list-create')
|
||||
data = {
|
||||
'title': 'Test Source',
|
||||
'url': 'https://example.com',
|
||||
'archived_url': 'https://archive.is/example.com',
|
||||
'description': 'This is a test source',
|
||||
'category': 'test',
|
||||
'tags': [self.tag.id]
|
||||
}
|
||||
response = self.client.post(url, data, format='json')
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
self.assertEqual(Source.objects.count(), 1)
|
||||
self.assertEqual(Source.objects.get().title, 'Test Source')
|
||||
|
||||
def test_list_sources(self):
|
||||
Source.objects.create(title='Test Source', url='https://example.com', added_by=self.user)
|
||||
url = reverse('source-list-create')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data), 1)
|
||||
@ -0,0 +1,30 @@
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth import get_user_model
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from your_app.models import Suggestion
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
class SuggestionTests(APITestCase):
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(username='testuser', password='testpassword123')
|
||||
self.client.force_authenticate(user=self.user)
|
||||
|
||||
def test_create_suggestion(self):
|
||||
url = reverse('suggestion-list-create')
|
||||
data = {
|
||||
'url': 'https://example.com',
|
||||
'description': 'This is a test suggestion'
|
||||
}
|
||||
response = self.client.post(url, data, format='json')
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
self.assertEqual(Suggestion.objects.count(), 1)
|
||||
self.assertEqual(Suggestion.objects.get().url, 'https://example.com')
|
||||
|
||||
def test_list_suggestions(self):
|
||||
Suggestion.objects.create(url='https://example.com', suggested_by=self.user)
|
||||
url = reverse('suggestion-list-create')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data), 1)
|
||||
@ -0,0 +1,41 @@
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth import get_user_model
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from rest_framework_simplejwt.tokens import RefreshToken
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
class UserAuthTests(APITestCase):
|
||||
def setUp(self):
|
||||
self.user = User.objects.create_user(username='testuser', password='testpassword123', email='test@example.com')
|
||||
self.user.save()
|
||||
|
||||
def test_register_user(self):
|
||||
url = reverse('user-register')
|
||||
data = {'username': 'newuser', 'password': 'newpassword123', 'email': 'newuser@example.com'}
|
||||
response = self.client.post(url, data, format='json')
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
def test_login_user(self):
|
||||
url = reverse('user-login')
|
||||
data = {'username': 'testuser', 'password': 'testpassword123'}
|
||||
response = self.client.post(url, data, format='json')
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertIn('access', response.data)
|
||||
self.assertIn('refresh', response.data)
|
||||
|
||||
def test_logout_user(self):
|
||||
refresh = RefreshToken.for_user(self.user)
|
||||
self.client.credentials(HTTP_AUTHORIZATION=f'Bearer {refresh.access_token}')
|
||||
url = reverse('user-logout')
|
||||
data = {'refresh': str(refresh)}
|
||||
response = self.client.post(url, data, format='json')
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
|
||||
def test_user_profile(self):
|
||||
self.client.force_authenticate(user=self.user)
|
||||
url = reverse('user-profile')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data['username'], 'testuser')
|
||||
Reference in New Issue
Block a user