Repository URL to install this package:
|
Version:
0.5.4 ▾
|
#!/usr/bin/env python2
import unittest
from zendesk_sync import ZendeskSync
from zendesk_sync.zendesk_sync import emails_to_identities
from clean_users_test import CleanUsersTest
class TestEmails(CleanUsersTest):
"""
Check if all the different possible email changes work
"""
def test_email_add(self):
self.zs.create_user(
self.user_uuid,
self.primary_email,
self.emails,
self.fullname,
self.username)
user = self.zs.get_user(self.user_uuid)
self.zs.update_user_emails(
user['id'],
self.primary_email,
self.emails_both)
user = self.zs.get_user(self.user_uuid)
idents = self.zs.list_identities(self.user_uuid)
self.assertEqual(len(idents), 2)
def test_email_case(self):
self.zs.create_user(
self.user_uuid,
self.primary_email,
self.emails,
self.fullname,
self.username)
user = self.zs.get_user(self.user_uuid)
emails = [e.upper() for e in self.emails]
primary_email = self.primary_email.upper()
self.zs.update_user_emails(
user['id'],
primary_email,
emails)
user = self.zs.get_user(self.user_uuid)
idents = self.zs.list_identities(self.user_uuid)
self.assertEqual(len(idents), 1)
def test_email_change(self):
self.zs.create_user(
self.user_uuid,
self.primary_email,
self.emails,
self.fullname,
self.username)
# make sure that before the update the primary email is correct
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.primary_email.lower())
idents = self.zs.list_identities(self.user_uuid)
self.assertEqual(len(idents), 1)
self.assertEqual(idents[0]['value'], self.primary_email.lower())
self.zs.update_user_emails(
user['id'],
self.primary_email2,
self.emails2)
# make sure that after the update the primary email is changed
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.primary_email2.lower())
idents = self.zs.list_identities(self.user_uuid)
self.assertEqual(len(idents), 1)
self.assertEqual(idents[0]['value'], self.primary_email2.lower())
def test_email_change_primary(self):
self.zs.create_user(
self.user_uuid,
self.primary_email,
self.emails_both,
self.fullname,
self.username)
user = self.zs.get_user(self.user_uuid)
self.zs.update_user_emails(
user['id'],
self.primary_email2,
self.emails_both)
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.primary_email2.lower())
self.zs.list_identities(self.user_uuid)
self.assertEqual(len(self.zs.list_identities(self.user_uuid)), 2)
def test_email_remove(self):
self.zs.create_user(
self.user_uuid,
self.primary_email,
self.emails_both,
self.fullname,
self.username)
# make sure that before the update there are two identities and the
# primary email is correct
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.primary_email.lower())
idents = self.zs.list_identities(self.user_uuid)
self.assertEqual(len(idents), 2)
self.zs.update_user_emails(user['id'], self.primary_email, self.emails)
# make sure that after the update there is only one email left
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.primary_email.lower())
self.zs.list_identities(self.user_uuid)
self.assertEqual(len(self.zs.list_identities(self.user_uuid)), 1)
self.assertEqual(idents[0]['value'], self.primary_email.lower())
def test_email_verify(self):
# one off creation of a special user without a verified email
identities = emails_to_identities(self.emails)
identities[0]['verified'] = False
self.zs.client.user_create({
'user': {
'external_id': self.user_uuid,
'name': self.username,
'email': self.primary_email,
'details': self.fullname,
'identities': identities
}
})
# initially the email is not verified
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.emails[0].lower())
self.zs.list_identities(self.user_uuid)
self.assertEqual(
self.zs.list_identities(
self.user_uuid)[0]['verified'],
False)
self.zs.update_user_emails(
user['id'],
self.primary_email,
self.emails)
# then the email becomes verified
user = self.zs.get_user(self.user_uuid)
self.assertEqual(user['email'], self.emails[0].lower())
self.zs.list_identities(self.user_uuid)
self.assertEqual(
self.zs.list_identities(
self.user_uuid)[0]['verified'],
True)
if __name__ == '__main__':
unittest.main()