예제 #1
0
    def test_get_strength(self):
        dir = self.src.directories.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
            'status': 'DISABLED',
            'custom_data': {'hi': 'there'},
        })

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=dir)
        strength = migrator.get_strength()
        self.assertTrue(strength)

        dir.delete()
예제 #2
0
    def test_copy_custom_data(self):
        dir = self.src.directories.create({
            'custom_data': {'hi': 'there'},
            'description': uuid4().hex,
            'name': uuid4().hex,
            'status': 'DISABLED',
        })

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=dir)
        copied_dir = migrator.copy_dir()
        copied_data = migrator.copy_custom_data()

        self.assertEqual(copied_data['hi'], 'there')

        dir.delete()
        copied_dir.delete()
예제 #3
0
    def test_copy_strength(self):
        dir = self.src.directories.create({'name': uuid4().hex})
        strength = dir.password_policy.strength

        strength.max_length = 101
        strength.save()

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=dir)
        copied_dir = migrator.copy_dir()
        copied_strength = migrator.copy_strength()

        for key in copied_strength.writable_attrs:
            self.assertEqual(copied_strength[key], strength[key])

        dir.delete()
        copied_dir.delete()
예제 #4
0
    def test_copy_dir(self):
        dir = self.src.directories.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
            'status': 'DISABLED',
            'custom_data': {'hi': 'there'},
        })

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=dir)
        copied_dir = migrator.copy_dir()

        self.assertTrue(copied_dir)
        self.assertEqual(dir.description, copied_dir.description)
        self.assertEqual(dir.name, copied_dir.name)
        self.assertEqual(dir.provider.provider_id, copied_dir.provider.provider_id)
        self.assertEqual(dir.status, copied_dir.status)

        dir.delete()
        copied_dir.delete()

        dir = self.src.directories.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
            'status': 'DISABLED',
            'provider': {
                'provider_id': 'google',
                'client_id': 'test',
                'client_secret': 'test',
                'redirect_uri': 'https://test.com/callback',
            }
        })

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=dir)
        copied_dir = migrator.copy_dir()

        self.assertTrue(copied_dir)
        self.assertEqual(dir.description, copied_dir.description)
        self.assertEqual(dir.name, copied_dir.name)
        self.assertEqual(dir.provider.provider_id, copied_dir.provider.provider_id)
        self.assertEqual(dir.provider.client_id, copied_dir.provider.client_id)
        self.assertEqual(dir.provider.client_secret, copied_dir.provider.client_secret)
        self.assertEqual(dir.provider.redirect_uri, copied_dir.provider.redirect_uri)
        self.assertEqual(dir.status, copied_dir.status)

        dir.delete()
        copied_dir.delete()
예제 #5
0
    def setUp(self):
        self.src = Client(id=SRC_CLIENT_ID, secret=SRC_CLIENT_SECRET)
        self.dst = Client(id=DST_CLIENT_ID, secret=DST_CLIENT_SECRET)

        self.dir = self.src.directories.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
        })

        self.group = self.dir.groups.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
            'status': 'DISABLED',
            'custom_data': {'hi': 'there'},
        })

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=self.dir)
        self.dst_dir = migrator.migrate()
    def setUp(self):
        self.src = Client(id=SRC_CLIENT_ID, secret=SRC_CLIENT_SECRET)
        self.dst = Client(id=DST_CLIENT_ID, secret=DST_CLIENT_SECRET)

        self.src_dir = self.src.directories.create({'name': uuid4().hex})
        self.src_group = self.src_dir.groups.create({'name': uuid4().hex})
        self.src_org = self.src.organizations.create({'name': uuid4().hex, 'name_key': uuid4().hex})

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=self.src_dir)
        self.dst_dir = migrator.migrate()

        migrator = GroupMigrator(destination_directory=self.dst_dir, source_group=self.src_group)
        self.dst_group = migrator.migrate()

        migrator = OrganizationMigrator(destination_client=self.dst, source_organization=self.src_org)
        self.dst_org = migrator.migrate()

        self.src_mapping_1 = self.src.organization_account_store_mappings.create({
            'organization': self.src_org,
            'account_store': self.src_dir,
            'list_index': 0,
            'is_default_account_store': True,
            'is_default_group_store': True,
        })

        self.src_mapping_2 = self.src.organization_account_store_mappings.create({
            'organization': self.src_org,
            'account_store': self.src_group,
            'list_index': 1,
            'is_default_account_store': False,
            'is_default_group_store': False,
        })
예제 #7
0
    def setUp(self):
        self.src = Client(id=SRC_CLIENT_ID, secret=SRC_CLIENT_SECRET)
        self.dst = Client(id=DST_CLIENT_ID, secret=DST_CLIENT_SECRET)

        self.dir = self.src.directories.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
        })

        self.account = self.dir.accounts.create({
            'custom_data': {'hi': 'there'},
            'username': uuid4().hex,
            'given_name': uuid4().hex,
            'middle_name': uuid4().hex,
            'surname': uuid4().hex,
            'email': uuid4().hex + '@test.com',
            'password': '******',
            'status': 'ENABLED',
        })

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=self.dir)
        self.dst_dir = migrator.migrate()
예제 #8
0
    def test_migrate(self):
        dir = self.src.directories.create({
            'description': uuid4().hex,
            'name': uuid4().hex,
            'status': 'DISABLED',
            'custom_data': {'hi': 'there'},
        })

        custom_data = dir.custom_data
        strength = dir.password_policy.strength

        strength.max_length = 100
        strength.min_length = 1
        strength.min_lower_case = 0
        strength.min_numeric = 0
        strength.min_symbol = 0
        strength.min_upper_case = 0
        strength.min_diacritic = 0
        strength.save()

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=dir)
        copied_dir = migrator.migrate()
        copied_custom_data = copied_dir.custom_data
        copied_strength = copied_dir.password_policy.strength

        self.assertEqual(copied_dir.description, dir.description)
        self.assertEqual(copied_dir.name, dir.name)
        self.assertEqual(copied_dir.status, dir.status)

        self.assertEqual(copied_custom_data['hi'], custom_data['hi'])

        for key in sanitize(strength).keys():
            self.assertEqual(copied_strength[key], strength[key])

        dir.delete()
        copied_dir.delete()
    def setUp(self):
        self.src = Client(id=SRC_CLIENT_ID, secret=SRC_CLIENT_SECRET)
        self.dst = Client(id=DST_CLIENT_ID, secret=DST_CLIENT_SECRET)

        self.src_dir = self.src.directories.create({'name': uuid4().hex})
        self.src_group = self.src_dir.groups.create({'name': uuid4().hex})
        self.src_account = self.src_dir.accounts.create({
            'given_name': uuid4().hex,
            'surname': uuid4().hex,
            'email': uuid4().hex + '@test.com',
            'password': '******',
        })
        self.src_membership = self.src_account.add_group(self.src_group)

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=self.src_dir)
        self.dst_dir = migrator.migrate()

        migrator = GroupMigrator(destination_directory=self.dst_dir, source_group=self.src_group)
        self.dst_group = migrator.migrate()

        migrator = AccountMigrator(destination_directory=self.dst_dir, source_account=self.src_account, source_password='******')
        self.dst_account = migrator.migrate()
    def setUp(self):
        self.src = Client(id=SRC_CLIENT_ID, secret=SRC_CLIENT_SECRET)
        self.dst = Client(id=DST_CLIENT_ID, secret=DST_CLIENT_SECRET)

        self.src_dir = self.src.directories.create({'name': uuid4().hex})

        self.src_account_creation_policy = self.src_dir.account_creation_policy
        self.src_account_creation_policy.verification_email_status = 'ENABLED'
        self.src_account_creation_policy.verification_success_email_status = 'ENABLED'
        self.src_account_creation_policy.welcome_email_status = 'ENABLED'
        self.src_account_creation_policy.save()

        self.src_password_policy = self.src_dir.password_policy
        self.src_password_policy.reset_email_status = 'ENABLED'
        self.src_password_policy.reset_success_email_status = 'ENABLED'
        self.src_password_policy.reset_token_ttl = 100
        self.src_password_policy.save()

        self.src_verification_email_template = self.src_account_creation_policy.verification_email_templates[0]
        self.src_verification_email_template.description = uuid4().hex
        self.src_verification_email_template.from_email_address = uuid4().hex + '@test.com'
        self.src_verification_email_template.from_name = uuid4().hex
        self.src_verification_email_template.html_body = '${url}' + uuid4().hex
        self.src_verification_email_template.mime_type = 'text/html'
        self.src_verification_email_template.name = uuid4().hex
        self.src_verification_email_template.subject = uuid4().hex
        self.src_verification_email_template.text_body = '${url}' + uuid4().hex
        self.src_verification_email_template.save()

        self.src_verification_success_email_template = self.src_account_creation_policy.verification_success_email_templates[0]
        self.src_verification_success_email_template.description = uuid4().hex
        self.src_verification_success_email_template.from_email_address = uuid4().hex + '@test.com'
        self.src_verification_success_email_template.from_name = uuid4().hex
        self.src_verification_success_email_template.html_body = '${url}' + uuid4().hex
        self.src_verification_success_email_template.mime_type = 'text/html'
        self.src_verification_success_email_template.name = uuid4().hex
        self.src_verification_success_email_template.subject = uuid4().hex
        self.src_verification_success_email_template.text_body = '${url}' + uuid4().hex
        self.src_verification_success_email_template.save()

        self.src_welcome_email_template = self.src_account_creation_policy.welcome_email_templates[0]
        self.src_welcome_email_template.description = uuid4().hex
        self.src_welcome_email_template.from_email_address = uuid4().hex + '@test.com'
        self.src_welcome_email_template.from_name = uuid4().hex
        self.src_welcome_email_template.html_body = '${url}' + uuid4().hex
        self.src_welcome_email_template.mime_type = 'text/html'
        self.src_welcome_email_template.name = uuid4().hex
        self.src_welcome_email_template.subject = uuid4().hex
        self.src_welcome_email_template.text_body = '${url}' + uuid4().hex
        self.src_welcome_email_template.save()

        self.src_reset_email_template = self.src_password_policy.reset_email_templates[0]
        self.src_reset_email_template.description = uuid4().hex
        self.src_reset_email_template.from_email_address = uuid4().hex + '@test.com'
        self.src_reset_email_template.from_name = uuid4().hex
        self.src_reset_email_template.html_body = '${url}' + uuid4().hex
        self.src_reset_email_template.mime_type = 'text/html'
        self.src_reset_email_template.name = uuid4().hex
        self.src_reset_email_template.subject = uuid4().hex
        self.src_reset_email_template.text_body = '${url}' + uuid4().hex
        self.src_reset_email_template.save()

        self.src_reset_success_email_template = self.src_password_policy.reset_success_email_templates[0]
        self.src_reset_success_email_template.description = uuid4().hex
        self.src_reset_success_email_template.from_email_address = uuid4().hex + '@test.com'
        self.src_reset_success_email_template.from_name = uuid4().hex
        self.src_reset_success_email_template.html_body = '${url}' + uuid4().hex
        self.src_reset_success_email_template.mime_type = 'text/html'
        self.src_reset_success_email_template.name = uuid4().hex
        self.src_reset_success_email_template.subject = uuid4().hex
        self.src_reset_success_email_template.text_body = '${url}' + uuid4().hex
        self.src_reset_success_email_template.save()

        migrator = DirectoryMigrator(destination_client=self.dst, source_directory=self.src_dir)
        self.dst_dir = migrator.migrate()