def test_find_subscriptions_thru_username_password_adfs(self, mock_get_cloud, mock_acquire_token, mock_acquire_token_username_password): TEST_ADFS_AUTH_URL = 'https://adfs.local.azurestack.external/adfs' def test_acquire_token(self, resource, username, password, client_id): global acquire_token_invoked acquire_token_invoked = True if (self.authority.url == TEST_ADFS_AUTH_URL and self.authority.is_adfs_authority): return Test_Profile.token_entry1 else: raise ValueError('AuthContext was not initialized correctly for ADFS') mock_acquire_token_username_password.side_effect = test_acquire_token mock_acquire_token.return_value = self.token_entry1 mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.return_value = [TenantStub(self.tenant_id)] mock_arm_client.subscriptions.list.return_value = [self.subscription1] mock_get_cloud.endpoints.active_directory = TEST_ADFS_AUTH_URL finder = SubscriptionFinder(_AUTH_CTX_FACTORY, None, lambda _: mock_arm_client) mgmt_resource = 'https://management.core.windows.net/' # action subs = finder.find_from_user_account(self.user1, 'bar', None, mgmt_resource) # assert self.assertEqual([self.subscription1], subs) self.assertTrue(acquire_token_invoked)
def test_find_subscriptions_thru_username_password_adfs(self, mock_get_cloud, mock_acquire_token, mock_acquire_token_username_password): TEST_ADFS_AUTH_URL = 'https://adfs.local.azurestack.external/adfs' def test_acquire_token(self, resource, username, password, client_id): global acquire_token_invoked acquire_token_invoked = True if (self.authority.url == TEST_ADFS_AUTH_URL and self.authority.is_adfs_authority): return Test_Profile.token_entry1 else: raise ValueError('AuthContext was not initialized correctly for ADFS') mock_acquire_token_username_password.side_effect = test_acquire_token mock_acquire_token.return_value = self.token_entry1 mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.return_value = [TenantStub(self.tenant_id)] mock_arm_client.subscriptions.list.return_value = [self.subscription1] mock_get_cloud.endpoints.active_directory = TEST_ADFS_AUTH_URL finder = SubscriptionFinder(_AUTH_CTX_FACTORY, None, lambda _: mock_arm_client) mgmt_resource = 'https://management.core.windows.net/' # action subs = finder.find_from_user_account(self.user1, 'bar', None, mgmt_resource) # assert self.assertEqual([self.subscription1], subs) self.assertTrue(acquire_token_invoked)
def test_find_subscriptions_from_particular_tenent(self, mock_auth_context): def just_raise(ex): raise ex mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.side_effect = lambda: just_raise( ValueError("'tenants.list' should not occur")) mock_arm_client.subscriptions.list.return_value = [self.subscription1] finder = SubscriptionFinder(lambda _, _2: mock_auth_context, None, lambda _: mock_arm_client) # action subs = finder.find_from_user_account(self.user1, 'bar', 'NiceTenant', 'http://someresource') # assert self.assertEqual([self.subscription1], subs)
def test_find_subscriptions_thru_username_password_with_account_disabled(self, mock_logger, mock_auth_context): mock_auth_context.acquire_token_with_username_password.return_value = self.token_entry1 mock_auth_context.acquire_token.side_effect = AdalError('Account is disabled') mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.return_value = [TenantStub(self.tenant_id)] finder = SubscriptionFinder(lambda _, _2: mock_auth_context, None, lambda _: mock_arm_client) mgmt_resource = 'https://management.core.windows.net/' # action subs = finder.find_from_user_account(self.user1, 'bar', None, mgmt_resource) # assert self.assertEqual([], subs) mock_logger.warning.assert_called_once_with(mock.ANY, mock.ANY, mock.ANY)
def test_find_subscriptions_from_particular_tenent(self, mock_auth_context): def just_raise(ex): raise ex mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.side_effect = lambda: just_raise( ValueError("'tenants.list' should not occur")) mock_arm_client.subscriptions.list.return_value = [self.subscription1] finder = SubscriptionFinder(lambda _, _2: mock_auth_context, None, lambda _: mock_arm_client) # action subs = finder.find_from_user_account(self.user1, 'bar', 'NiceTenant', 'http://someresource') # assert self.assertEqual([self.subscription1], subs)
def test_find_subscriptions_thru_username_password_with_account_disabled(self, mock_logger, mock_auth_context): mock_auth_context.acquire_token_with_username_password.return_value = self.token_entry1 mock_auth_context.acquire_token.side_effect = AdalError('Account is disabled') mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.return_value = [TenantStub(self.tenant_id)] finder = SubscriptionFinder(lambda _, _2: mock_auth_context, None, lambda _: mock_arm_client) mgmt_resource = 'https://management.core.windows.net/' # action subs = finder.find_from_user_account(self.user1, 'bar', None, mgmt_resource) # assert self.assertEqual([], subs) mock_logger.warning.assert_called_once_with(mock.ANY, mock.ANY, mock.ANY)
def test_find_subscriptions_thru_username_password(self, mock_auth_context): mock_auth_context.acquire_token_with_username_password.return_value = self.token_entry1 mock_auth_context.acquire_token.return_value = self.token_entry1 mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.return_value = [TenantStub(self.tenant_id)] mock_arm_client.subscriptions.list.return_value = [self.subscription1] finder = SubscriptionFinder(lambda _, _2: mock_auth_context, None, lambda _: mock_arm_client) mgmt_resource = 'https://management.core.windows.net/' # action subs = finder.find_from_user_account(self.user1, 'bar', None, mgmt_resource) # assert self.assertEqual([self.subscription1], subs) mock_auth_context.acquire_token_with_username_password.assert_called_once_with( mgmt_resource, self.user1, 'bar', mock.ANY) mock_auth_context.acquire_token.assert_called_once_with( mgmt_resource, self.user1, mock.ANY)
def test_find_subscriptions_thru_username_password(self, mock_auth_context): mock_auth_context.acquire_token_with_username_password.return_value = self.token_entry1 mock_auth_context.acquire_token.return_value = self.token_entry1 mock_arm_client = mock.MagicMock() mock_arm_client.tenants.list.return_value = [TenantStub(self.tenant_id)] mock_arm_client.subscriptions.list.return_value = [self.subscription1] finder = SubscriptionFinder(lambda _, _2: mock_auth_context, None, lambda _: mock_arm_client) mgmt_resource = 'https://management.core.windows.net/' #action subs = finder.find_from_user_account(self.user1, 'bar', mgmt_resource) #assert self.assertEqual([self.subscription1], subs) mock_auth_context.acquire_token_with_username_password.assert_called_once_with( mgmt_resource, self.user1, 'bar', mock.ANY) mock_auth_context.acquire_token.assert_called_once_with( mgmt_resource, self.user1, mock.ANY)