This repository has been archived on 2022-05-05. You can view files and clone it, but cannot push or open issues or pull requests.
userausfall/userausfall/rest_api/tests/trust_bridges.py

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)