Esempio n. 1
0
class UsersClientTest(unittest.TestCase):

    def setUp(self):
        self.client = UsersClient(os.environ.get('OKTA_TEST_URL'), os.environ.get('OKTA_TEST_KEY'))

    def test_paging(self):
        users = self.client.get_paged_users(limit=1)

        first_page_hit = subsequent_page_hit = False

        for user in users.result:
            first_page_hit = True

        while not users.is_last_page():
            users = self.client.get_paged_users(url=users.next_url)
            for user in users.result:
                subsequent_page_hit = True

        self.assertTrue(first_page_hit and subsequent_page_hit, "The first and subsequent pages weren't hit")

    def test_single_user(self):
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.client.create_user(user, activate=False)
        self.assertEqual(user.status, "STAGED", "User should be staged")

        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.client.create_user(user, activate=True)
        self.assertEqual(user.status, "PROVISIONED", "User should be provisioned")
class UserGroupsClientTest(unittest.TestCase):
    def setUp(self):
        self.client = UserGroupsClient(os.environ.get('OKTA_TEST_URL'),
                                       os.environ.get('OKTA_TEST_KEY'))
        self.user_client = UsersClient(os.environ.get('OKTA_TEST_URL'),
                                       os.environ.get('OKTA_TEST_KEY'))

    def test_single_group(self):
        name = 'random_group_' + str(random.random())
        group = UserGroup(name=name, description='something interesting here')
        group = self.client.create_group(group)
        self.assertEqual(group.profile.name, name,
                         "The name for the group wasn't set properly")

    def test_add_user_to_group(self):
        # Create group
        name = 'random_group_' + str(random.random())
        group = UserGroup(name=name, description='something interesting here')
        group = self.client.create_group(group)

        # Create user
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.user_client.create_user(user, activate=False)

        self.client.add_user_to_group(group, user)
class UserGroupsClientTest(unittest.TestCase):

    def setUp(self):
        self.client = UserGroupsClient(os.environ.get('OKTA_TEST_URL'), os.environ.get('OKTA_TEST_KEY'))
        self.user_client = UsersClient(os.environ.get('OKTA_TEST_URL'), os.environ.get('OKTA_TEST_KEY'))

    def test_single_group(self):
        name = 'random_group_' + str(random.random())
        group = UserGroup(name=name, description='something interesting here')
        group = self.client.create_group(group)
        self.assertEqual(group.profile.name, name, "The name for the group wasn't set properly")

    def test_add_user_to_group(self):
        # Create group
        name = 'random_group_' + str(random.random())
        group = UserGroup(name=name, description='something interesting here')
        group = self.client.create_group(group)

        # Create user
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.user_client.create_user(user, activate=False)

        self.client.add_user_to_group(group, user)
Esempio n. 4
0
class UserGroupsClientTest(unittest.TestCase):
    def setUp(self):
        self.client = UserGroupsClient("http://okta.mock.invalid",
                                       "mock-api-key")
        self.user_client = UsersClient("http://okta.mock.invalid",
                                       "mock-api-key")

    @requests_mock.Mocker()
    def test_single_group(self, m):
        name = 'random_group_' + str(random.random())
        m.register_uri("POST",
                       "http://okta.mock.invalid/api/v1/groups/",
                       json={
                           "id": "g0001mock",
                           "profile": {
                               "name": name,
                               "description": "something interesting here"
                           },
                       })
        group = UserGroup(name=name, description="something interesting here")
        group = self.client.create_group(group)
        self.assertEqual(group.profile.name, name,
                         "The name for the group wasn't set properly")

    @requests_mock.Mocker()
    def test_add_user_to_group(self, m):
        # Create group
        m.register_uri("POST",
                       "http://okta.mock.invalid/api/v1/groups/",
                       json={"id": "g0001mock"})
        name = 'random_group_' + str(random.random())
        group = UserGroup(name=name, description='something interesting here')
        group = self.client.create_group(group)

        # Create user
        m.register_uri(
            "POST",
            "http://okta.mock.invalid/api/v1/users/?activate=false",
            json={
                "id": "u0001mock",
                "status": "STAGED",
            },
        )
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.user_client.create_user(user, activate=False)

        m.register_uri(
            "PUT",
            "http://okta.mock.invalid/api/v1/groups/g0001mock/users/u0001mock",
            json={})
        self.client.add_user_to_group(group, user)
Esempio n. 5
0
def create_okta_user(data):
    users_client = UsersClient(config.org_url, config.token)
    okta_user = User(login=data['email'],
                     email=data['email'],
                     firstName=data['first_name'],
                     lastName=data['last_name'],
                     password=data['password'])
    try:
        return users_client.create_user(okta_user, activate=False).id
    except Exception as e:
        raise e
Esempio n. 6
0
class UsersClientTest(unittest.TestCase):
    def setUp(self):
        self.client = UsersClient(os.environ.get('OKTA_TEST_URL'),
                                  os.environ.get('OKTA_TEST_KEY'))

    def test_paging(self):
        users = self.client.get_paged_users(limit=1)

        first_page_hit = subsequent_page_hit = False

        for user in users.result:
            first_page_hit = True

        while not users.is_last_page():
            users = self.client.get_paged_users(url=users.next_url)
            for user in users.result:
                subsequent_page_hit = True

        self.assertTrue(first_page_hit and subsequent_page_hit,
                        "The first and subsequent pages weren't hit")

    def test_single_user(self):
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.client.create_user(user, activate=False)
        self.assertEqual(user.status, "STAGED", "User should be staged")

        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.client.create_user(user, activate=True)
        self.assertEqual(user.status, "PROVISIONED",
                         "User should be provisioned")
Esempio n. 7
0
class UsersClientTest(unittest.TestCase):
    def setUp(self):
        self.client = UsersClient("http://okta.mock.invalid", "mock-api-key")

    @requests_mock.Mocker()
    def test_paging(self, m):
        m.register_uri(
            "GET",
            "http://okta.mock.invalid/api/v1/users/?limit=1",
            json=[
                {
                    "id": "u0001mock",
                    "status": "ACTIVE"
                },
            ],
            headers={
                "Link":
                '<http://okta.mock.invalid/api/v1/users/?limit=1&offset=1>; rel="next"'
            })
        m.register_uri(
            "GET",
            "http://okta.mock.invalid/api/v1/users/?limit=1&offset=1",
            json=[
                {
                    "id": "u0002mock",
                    "status": "ACTIVE"
                },
            ])

        users = self.client.get_paged_users(limit=1)

        first_page_hit = subsequent_page_hit = False

        for user in users.result:
            first_page_hit = True

        while not users.is_last_page():
            users = self.client.get_paged_users(url=users.next_url)
            for user in users.result:
                subsequent_page_hit = True

        self.assertTrue(first_page_hit and subsequent_page_hit,
                        "The first and subsequent pages weren't hit")

    @requests_mock.Mocker()
    def test_single_user(self, m):
        m.register_uri(
            "POST",
            "http://okta.mock.invalid/api/v1/users/?activate=false",
            complete_qs=True,
            json={
                "id": "u0001mock",
                "status": "STAGED",
            },
        )
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.client.create_user(user, activate=False)
        self.assertEqual(user.status, "STAGED", "User should be staged")

        m.register_uri(
            "POST",
            "http://okta.mock.invalid/api/v1/users/?activate=true",
            complete_qs=True,
            json={
                "id": "u0002mock",
                "status": "PROVISIONED",
            },
        )
        user = User(login='******' + str(random.random()) + '@asdf.com',
                    email='*****@*****.**',
                    firstName='Joe',
                    lastName='Schmoe')
        user = self.client.create_user(user, activate=True)
        self.assertEqual(user.status, "PROVISIONED",
                         "User should be provisioned")
Esempio n. 8
0
usersClient = UsersClient("https://{{url}}.okta.com", "API_Token")
'''
Values that define the functionality of the script

Arguments:
        :user_index: => The index from where the script will start counting. Default value of 1
        :firstName_value: => Shared value between all users created. Default value of User
        :lastName_value: => Dinamyc value that will make sure that each user is unique as per Okta's request
        :email_domain: => The domain value for the email and login form. Default value of @example.com
'''
user_index = 1
firstName_value = "User"
lastName_value = 1
email_domain = "@example.com"

# While loop to create 1000 users. As the user_index has a default value of 1 we will need to run until 1001 in order to have 1000 users created. If instead we use 1000, then 999 user will be created.
# time.sleep is defined at 5 seconds in order to make sure that the rate limit is not reached.
# Okta Rate limit documentation: https://developer.okta.com/docs/api/getting_started/rate-limits

while user_index < 1001:

    user = User(login=firstName_value + str(lastName_value) + email_domain,
                email=firstName_value + str(lastName_value) + email_domain,
                firstName=firstName_value,
                lastName=lastName_value)

    user = usersClient.create_user(user, activate=True)
    user_index += 1
    lastName_value += 1
    time.sleep(5)