35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import pytest
|
|
from django.core.exceptions import ValidationError as DjangoValidationError
|
|
from rest_framework.exceptions import ValidationError as DRFValidationError
|
|
from core.users.services import UserService
|
|
from django.contrib.auth import get_user_model
|
|
|
|
User = get_user_model()
|
|
|
|
@pytest.mark.django_db
|
|
class TestUserService:
|
|
|
|
def setup_method(self):
|
|
self.user = User.objects.create_user(
|
|
email="servis@primjer.hr",
|
|
password="password123"
|
|
)
|
|
|
|
def test_update_profile_success(self):
|
|
"""Testira uspješno ažuriranje profila preko servisa."""
|
|
new_data = {"first_name": "Novi", "last_name": "Korisnik"}
|
|
|
|
updated_user = UserService.update_user_profile(self.user, new_data)
|
|
|
|
assert updated_user.first_name == "Novi"
|
|
assert updated_user.last_name == "Korisnik"
|
|
# Provjera da email nije promijenjen ako nismo poslali
|
|
assert updated_user.email == "servis@primjer.hr"
|
|
|
|
def test_update_profile_invalid_data(self):
|
|
"""Testira validaciju (npr. neispravan format podataka)."""
|
|
# Pretpostavimo da dodamo logiku u serializer koja brani prazno ime
|
|
invalid_data = {"first_name": ""}
|
|
|
|
with pytest.raises(DRFValidationError):
|
|
UserService.update_user_profile(self.user, invalid_data) |