50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from django.core import mail
|
|
from rest_framework import status
|
|
|
|
from userausfall.rest_api.tests import UserausfallAPITestCase
|
|
from userausfall.tests import UserMixin
|
|
|
|
|
|
class TrustBridgeTestCase(UserMixin, UserausfallAPITestCase):
|
|
def test_retrieve_trust_bridge(self):
|
|
"""Retrieve the trust bridge information of a user without an ldap account."""
|
|
url = "/trust-bridge/"
|
|
self.authenticate_user()
|
|
response = self.client.get(self.get_api_url(url))
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(
|
|
response.data,
|
|
{
|
|
"is_trusted": False,
|
|
"trust_giver": None,
|
|
},
|
|
)
|
|
|
|
def test_update_trust_bridge(self):
|
|
"""Update the trust giver of the user's trust bridge."""
|
|
url = "/trust-bridge/"
|
|
trust_giver = self.create_user()
|
|
self.create_user()
|
|
self.authenticate_user()
|
|
response = self.client.put(
|
|
self.get_api_url(url),
|
|
{
|
|
"trust_giver": {
|
|
"username": trust_giver.username,
|
|
},
|
|
},
|
|
)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(self.user.trust_bridge.trust_giver, trust_giver)
|
|
|
|
def test_set_trust_giver(self):
|
|
"""When setting a trust giver a confirmation email is sent."""
|
|
self.trust_giver = self.create_user()
|
|
self.create_user()
|
|
trust_bridge = self.user.get_or_create_trust_bridge()
|
|
trust_bridge.trust_giver = self.trust_giver
|
|
trust_bridge.save()
|
|
|
|
self.assertEqual(len(mail.outbox), 1)
|
|
self.assertIn(self.user.trust_bridge.get_confirmation_token(), mail.outbox[0].body)
|