chore(tests): add mailer and logindata tests

pull/154/head^2
Christian Merten 4 months ago
parent 7aea91cb31
commit 996914dc77
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -1 +1,2 @@
from .views import *
from .views import *
from .oauth import *

@ -0,0 +1,47 @@
from django.test import TestCase
from django.contrib.auth.models import User
from django.conf import settings
from unittest.mock import Mock
from logindata.oauth import CustomOAuth2Validator
from members.models import Member, MALE
class CustomOAuth2ValidatorTestCase(TestCase):
def setUp(self):
self.validator = CustomOAuth2Validator()
# Create user with member
self.user_with_member = User.objects.create_user(username="alice", password="test123")
self.member = Member.objects.create(
prename="Alice", lastname="Smith", birth_date="1990-01-01",
email=settings.TEST_MAIL, gender=MALE, user=self.user_with_member
)
# Create user without member
self.user_without_member = User.objects.create_user(username="bob", password="test123")
def test_get_additional_claims_with_member(self):
"""Test get_additional_claims when user has a member"""
request = Mock()
request.user = self.user_with_member
result = self.validator.get_additional_claims(request)
self.assertEqual(result['email'], settings.TEST_MAIL)
self.assertEqual(result['preferred_username'], 'alice')
def test_get_additional_claims_without_member(self):
"""Test get_additional_claims when user has no member"""
# ensure branch coverage, not possible under standard scenarios
request = Mock()
request.user = Mock()
request.user.member = None
self.assertEqual(len(self.validator.get_additional_claims(request)), 1)
request = Mock()
request.user = self.user_without_member
# The method will raise RelatedObjectDoesNotExist, which means the code
# should use hasattr or try/except. For now, test that it raises.
with self.assertRaises(User.member.RelatedObjectDoesNotExist):
self.validator.get_additional_claims(request)

@ -1,3 +1,4 @@
from .models import *
from .admin import *
from .views import *
from .rules import *

@ -0,0 +1,31 @@
from django.test import TestCase
from django.conf import settings
from django.contrib.auth.models import User
from mailer.rules import is_creator
from mailer.models import Message
from members.models import Member, MALE
class MailerRulesTestCase(TestCase):
def setUp(self):
self.user1 = User.objects.create_user(username="alice", password="test123")
self.member1 = Member.objects.create(
prename="Alice", lastname="Smith", birth_date="1990-01-01",
email=settings.TEST_MAIL, gender=MALE, user=self.user1
)
self.message = Message.objects.create(
subject="Test Message",
content="Test content",
created_by=self.member1
)
def test_is_creator_returns_true_when_user_created_message(self):
"""Test is_creator predicate returns True when user created the message"""
result = is_creator(self.user1, self.message)
self.assertTrue(result)
def test_is_creator_returns_false_when_message_is_none(self):
"""Test is_creator predicate returns False when message is None"""
result = is_creator(self.user1, None)
self.assertFalse(result)
Loading…
Cancel
Save