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)