42_ft_transcendence/profiles/tests.py

39 lines
1.6 KiB
Python

from django.test import TestCase
from django.http import HttpResponse
from django.contrib.auth.models import User
from rest_framework import status
from profiles.serializers.ProfileSerializer import ProfileSerializer
from profiles.models.ProfileModel import ProfileModel
class ProfileTest(TestCase):
def setUp(self):
self.user: User = User.objects.create_user('bozo', password='password')
self.user.save()
self.expected_response = {'avatar': '/static/avatars/default.avif', 'user_id': 1, 'username': 'bozo'}
self.url = "/api/profiles/user/"
def test_profile_create_on_user_created(self):
response: HttpResponse = self.client.get(self.url + self.user.username)
self.assertDictEqual(self.expected_response, response.json())
class BlockTest(TestCase):
def setUp(self):
self.blocker_password = 'hello_world'
self.blocker: User = User.objects.create_user('blocker', password=self.blocker_password)
self.blocked: User = User.objects.create_user('blocked', password='password')
self.blocker.save()
self.blocked.save()
def test_normal(self):
self.client.login(username=self.blocker.username, password=self.blocker_password)
response: HttpResponse = self.client.post(f'/api/profiles/block/{self.blocked.pk}')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
blocked_profile = ProfileModel.objects.get(user=self.blocked)
response = self.client.get('/api/profiles/block')
self.assertListEqual(response.json(), [ProfileSerializer(blocked_profile).data])