def test_list_multiple_pages(self, user_mgt_app): sample_response = json.loads(SAML_PROVIDER_CONFIG_RESPONSE) configs = _create_list_response(sample_response) # Page 1 response = { 'inboundSamlConfigs': configs[:2], 'nextPageToken': 'token' } recorder = _instrument_provider_mgt(user_mgt_app, 200, json.dumps(response)) page = auth.list_saml_provider_configs(max_results=10, app=user_mgt_app) self._assert_page(page, next_page_token='token') assert len(recorder) == 1 req = recorder[0] assert req.method == 'GET' assert req.url == '{0}/inboundSamlConfigs?pageSize=10'.format( USER_MGT_URL_PREFIX) # Page 2 (also the last page) response = {'inboundSamlConfigs': configs[2:]} recorder = _instrument_provider_mgt(user_mgt_app, 200, json.dumps(response)) page = page.get_next_page() self._assert_page(page, count=1, start=2) assert len(recorder) == 1 req = recorder[0] assert req.method == 'GET' assert req.url == '{0}/inboundSamlConfigs?pageSize=10&pageToken=token'.format( USER_MGT_URL_PREFIX)
def test_list_empty_response(self, user_mgt_app): response = {'inboundSamlConfigs': []} _instrument_provider_mgt(user_mgt_app, 200, json.dumps(response)) page = auth.list_saml_provider_configs(app=user_mgt_app) assert len(page.provider_configs) == 0 provider_configs = list(config for config in page.iterate_all()) assert len(provider_configs) == 0
def test_paged_iteration(self, user_mgt_app): sample_response = json.loads(SAML_PROVIDER_CONFIG_RESPONSE) configs = _create_list_response(sample_response) # Page 1 response = { 'inboundSamlConfigs': configs[:2], 'nextPageToken': 'token' } recorder = _instrument_provider_mgt(user_mgt_app, 200, json.dumps(response)) page = auth.list_saml_provider_configs(app=user_mgt_app) iterator = page.iterate_all() for index in range(2): provider_config = next(iterator) assert provider_config.provider_id == 'saml.provider{0}'.format(index) assert len(recorder) == 1 req = recorder[0] assert req.method == 'GET' assert req.url == '{0}/inboundSamlConfigs?pageSize=100'.format(USER_MGT_URLS['PREFIX']) # Page 2 (also the last page) response = {'inboundSamlConfigs': configs[2:]} recorder = _instrument_provider_mgt(user_mgt_app, 200, json.dumps(response)) provider_config = next(iterator) assert provider_config.provider_id == 'saml.provider2' assert len(recorder) == 1 req = recorder[0] assert req.method == 'GET' assert req.url == '{0}/inboundSamlConfigs?pageSize=100&pageToken=token'.format( USER_MGT_URLS['PREFIX']) with pytest.raises(StopIteration): next(iterator)
def test_list_saml_provider_configs(saml_provider): page = auth.list_saml_provider_configs() result = None for provider_config in page.iterate_all(): if provider_config.provider_id == saml_provider.provider_id: result = provider_config break assert result is not None
def test_list_single_page(self, user_mgt_app): recorder = _instrument_provider_mgt(user_mgt_app, 200, LIST_SAML_PROVIDER_CONFIGS_RESPONSE) page = auth.list_saml_provider_configs(app=user_mgt_app) self._assert_page(page) provider_configs = list(config for config in page.iterate_all()) assert len(provider_configs) == 2 assert len(recorder) == 1 req = recorder[0] assert req.method == 'GET' assert req.url == '{0}{1}'.format(USER_MGT_URLS['PREFIX'], '/inboundSamlConfigs?pageSize=100')
def test_list_error(self, user_mgt_app): _instrument_provider_mgt(user_mgt_app, 500, '{"error":"test"}') with pytest.raises(exceptions.InternalError) as excinfo: auth.list_saml_provider_configs(app=user_mgt_app) assert str( excinfo.value) == 'Unexpected error response: {"error":"test"}'
def test_invalid_page_token(self, user_mgt_app, arg): with pytest.raises(ValueError): auth.list_saml_provider_configs(page_token=arg, app=user_mgt_app)
def test_invalid_max_results(self, user_mgt_app, arg): with pytest.raises(ValueError): auth.list_saml_provider_configs(max_results=arg, app=user_mgt_app)
def list_saml_provider_configs(): # [START list_saml_providers] for saml in auth.list_saml_provider_configs('nextPageToken').iterate_all(): print(saml.provider_id)