Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
zendesk_sync / tests / test_orgs.py
Size: Mime:
#!/usr/bin/env python2
import unittest

import time

from zendesk_sync import *
from clean_orgs_test import CleanOrgsTest


class TestOrgs(CleanOrgsTest):
    """
    Check if we can create orgs and have users join and leave them
    """

    def test_org_create(self):
        created_org = self.zs.safe_org_ownership_update(
            self.org_uuid,
            self.org_name,
            [])
        self.assertTrue(created_org)
        org = self.zs.get_org(self.org_uuid)
        self.assertEqual(org['name'], self.org_name)

    def test_org_add_users(self):
        self.zs.safe_create_user(
            self.user_uuid,
            self.primary_email,
            self.emails,
            self.fullname,
            self.username)
        created_org = self.zs.safe_org_ownership_update(
            self.org_uuid, self.org_name, [
                self.user_uuid])
        self.assertTrue(created_org)
        org = self.zs.get_org(self.org_uuid)
        self.assertEqual(org['name'], self.org_name)

        self.assertTrue(self.wait_for_success(lambda: len(self.zs.get_org_members(org['id'])) == 1))

        members = self.zs.get_org_members(org['id'])
        self.assertEqual(len(members), 1)
        self.assertEqual(members[0]['external_id'], self.user_uuid)

    def test_org_name_conflict(self):
        # make sure that the add_users test works even if the old org already
        # existed
        self.zs.create_org("", self.org_name)
        self.test_org_add_users()
        # make sure the old org was renamed correctly
        org = self.zs.get_org_by_name(self.org_name_renamed)
        self.assertEqual(org['external_id'], None)

    def test_org_name_conflict_case_sensitivity(self):
        # make sure that the add_users test works even if the old org already
        # existed
        self.zs.create_org("", self.org_name.upper())
        self.test_org_add_users()
        # make sure the old org was renamed correctly
        org = self.zs.get_org_by_name(self.org_name_renamed)
        self.assertEqual(org['external_id'], None)

    def test_org_add_users_twice(self):
        self.test_org_add_users()
        # create a second user and add them to make sure it works
        self.zs.safe_create_user(
            self.user_uuid2,
            self.primary_email2,
            self.emails2,
            self.fullname,
            self.username)
        created_org = self.zs.safe_org_ownership_update(
            self.org_uuid, self.org_name, [
                self.user_uuid, self.user_uuid2])
        self.assertFalse(created_org)

        org = self.zs.get_org(self.org_uuid)
        self.assertEqual(org['name'], self.org_name)

        self.assertTrue(self.wait_for_success(lambda: len(self.zs.get_org_members(org['id'])) == 2))

    def test_org_remove_users(self):
        self.test_org_add_users()
        created_org = self.zs.safe_org_ownership_update(
            self.org_uuid, self.org_name, [])
        org = self.zs.get_org(self.org_uuid)
        self.assertEqual(org['name'], self.org_name)

        self.assertTrue(self.wait_for_success(lambda: len(self.zs.get_org_members(org['id'])) == 0))

    def test_org_add_and_remove_users(self):
        self.test_org_add_users()
        # create a second user and replace the first one
        self.zs.safe_create_user(
            self.user_uuid2,
            self.primary_email2,
            self.emails2,
            self.fullname,
            self.username)
        created_org = self.zs.safe_org_ownership_update(
            self.org_uuid, self.org_name, [self.user_uuid2])
        org = self.zs.get_org(self.org_uuid)
        self.assertEqual(org['name'], self.org_name)

        success = self.wait_for_success(lambda: self.zs.get_org_members(org['id'])[0]['external_id'] == self.user_uuid2)
        self.assertTrue(success)

if __name__ == '__main__':
    unittest.main()