keystoneauth1.tests.unit package

keystoneauth1.tests.unit package

Subpackages

Submodules

keystoneauth1.tests.unit.client_fixtures module

keystoneauth1.tests.unit.client_fixtures.domain_scoped_token()
keystoneauth1.tests.unit.client_fixtures.project_scoped_token()

keystoneauth1.tests.unit.k2k_fixtures module

keystoneauth1.tests.unit.keystoneauth_fixtures module

class keystoneauth1.tests.unit.keystoneauth_fixtures.HackingCode

Bases: fixtures.fixture.Fixture

A fixture to house the various code examples.

Examples contains various keystoneauth hacking style checks.

oslo_namespace_imports = {'code': '\n import oslo.utils\n import oslo_utils\n import oslo.utils.encodeutils\n import oslo_utils.encodeutils\n from oslo import utils\n from oslo.utils import encodeutils\n from oslo_utils import encodeutils\n\n import oslo.serialization\n import oslo_serialization\n import oslo.serialization.jsonutils\n import oslo_serialization.jsonutils\n from oslo import serialization\n from oslo.serialization import jsonutils\n from oslo_serialization import jsonutils\n\n import oslo.config\n import oslo_config\n import oslo.config.cfg\n import oslo_config.cfg\n from oslo import config\n from oslo.config import cfg\n from oslo_config import cfg\n\n import oslo.i18n\n import oslo_i18n\n import oslo.i18n.log\n import oslo_i18n.log\n from oslo import i18n\n from oslo.i18n import log\n from oslo_i18n import log\n ', 'expected_errors': [(1, 0, 'K333'), (3, 0, 'K333'), (5, 0, 'K333'), (6, 0, 'K333'), (9, 0, 'K333'), (11, 0, 'K333'), (13, 0, 'K333'), (14, 0, 'K333'), (17, 0, 'K333'), (19, 0, 'K333'), (21, 0, 'K333'), (22, 0, 'K333'), (25, 0, 'K333'), (27, 0, 'K333'), (29, 0, 'K333'), (30, 0, 'K333')]}

keystoneauth1.tests.unit.matchers module

class keystoneauth1.tests.unit.matchers.XMLEquals(expected)

Bases: object

Parses two XML documents from strings and compares the results.

match(other)
class keystoneauth1.tests.unit.matchers.XMLMismatch(expected, other)

Bases: testtools.matchers._impl.Mismatch

describe()

keystoneauth1.tests.unit.oidc_fixtures module

keystoneauth1.tests.unit.test_betamax_fixture module

class keystoneauth1.tests.unit.test_betamax_fixture.TestBetamaxFixture(*args, **kwargs)

Bases: testtools.testcase.TestCase

TEST_AUTH_URL = 'http://keystoneauth-betamax.test/v2.0/'
TEST_PASSWORD = 'test_password'
TEST_TENANT_NAME = 'test_tenant_name'
TEST_USERNAME = 'test_user_name'
V2_TOKEN = {'access': {'token': {'issued_at': '2017-07-22T22:21:48.213557', 'expires': '2017-07-22T23:21:48.213557', 'id': '1d5bf82ff60345fc8cdb5fc99918482a', 'tenant': {'id': 'd83e392981aa4b3c88d1179a0fb21de4', 'name': 'test_tenant_name'}, 'audit_ids': ['9d98fba6728b4dd7838c2611113e7f65', None]}, 'user': {'id': '2b40c4eb5ab54a14afd3cebd21cb1a66', 'name': 'test_user_name'}}}
setUp()
test_keystoneauth_betamax_fixture()
test_replay_of_bad_url_fails()
class keystoneauth1.tests.unit.test_betamax_fixture.TestBetamaxFixtureSerializerBehaviour(*args, **kwargs)

Bases: testtools.testcase.TestCase

Test the fixture’s logic, not its monkey-patching.

The setUp method of our BetamaxFixture monkey-patches the function to construct a session. We don’t need to test that particular bit of logic here so we do not need to call useFixture in our setUp method.

test_can_pass_custom_serializer(*args, **keywargs)
test_can_pass_serializer_name()
test_no_request_matchers_provided()
test_no_serializer_options_provided()
test_request_matchers()

keystoneauth1.tests.unit.test_betamax_hooks module

class keystoneauth1.tests.unit.test_betamax_hooks.TestBetamaxHooks(*args, **kwargs)

Bases: testtools.testcase.TestCase

test_pre_record_hook_empty_body(*args, **keywargs)
test_pre_record_hook_v2()
test_pre_record_hook_v3()

keystoneauth1.tests.unit.test_betamax_serializer module

class keystoneauth1.tests.unit.test_betamax_serializer.TestBetamaxSerializer(*args, **kwargs)

Bases: testtools.testcase.TestCase

TEST_FILE = '/home/jenkins/workspace/keystoneauth-docs-unified-ubuntu-xenial/keystoneauth1/tests/unit/data/ksa_betamax_test_cassette.yaml'
TEST_JSON = '/home/jenkins/workspace/keystoneauth-docs-unified-ubuntu-xenial/keystoneauth1/tests/unit/data/ksa_serializer_data.json'
setUp()
test_deserialize()
test_serialize()

keystoneauth1.tests.unit.test_discovery module

class keystoneauth1.tests.unit.test_discovery.CatalogHackTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

BASE_URL = 'http://keystone.server:5000/'
IDENTITY = 'identity'
OTHER_URL = 'http://other.server:5000/path'
TEST_URL = 'http://keystone.server:5000/v2.0'
V2_URL = 'http://keystone.server:5000/v2.0'
V3_URL = 'http://keystone.server:5000/v3'
setUp()
test_ignored_non_service_type()
test_version_hacks()
class keystoneauth1.tests.unit.test_discovery.DiscoverUtils(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

test_version_args()

Validate _normalize_version_args.

test_version_between()
test_version_number()
test_version_to_string()
class keystoneauth1.tests.unit.test_discovery.EndpointDataTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

test_run_discovery_cache(*args, **keywargs)
class keystoneauth1.tests.unit.test_discovery.VersionDataTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

setUp()
test_allow_deprecated()
test_allow_experimental()
test_allow_unknown()
test_cinder_version_data()
test_data_for_no_version()
test_data_for_url()
test_glance_version_data()
test_keystone_version_data()
test_version_data_basics()
test_version_data_individual()
test_version_data_microversions()

Validate [min_|max_]version conversion to {min|max}_microversion.

keystoneauth1.tests.unit.test_fixtures module

class keystoneauth1.tests.unit.test_fixtures.V2TokenTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

test_roles()
test_services()
test_tenant_scoped()
test_token_bind()
test_trust_scoped()
test_unscoped()
class keystoneauth1.tests.unit.test_fixtures.V3TokenTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

test_catalog()
test_domain_scoped()
test_empty_default_service_providers()
test_is_admin_project()
test_oauth_scoped()
test_project_as_domain_scoped()
test_project_scoped()
test_roles()
test_service_providers()
test_token_bind()
test_trust_scoped()
test_unscoped()

keystoneauth1.tests.unit.test_hacking_checks module

class keystoneauth1.tests.unit.test_hacking_checks.TestCheckOsloNamespaceImports(*args, **kwargs)

Bases: testtools.testcase.TestCase

assert_has_errors(code, expected_errors=None)
run_check(*args, **keywargs)
test()

keystoneauth1.tests.unit.test_matchers module

class keystoneauth1.tests.unit.test_matchers.TestXMLEquals(*args, **kwargs)

Bases: testtools.testcase.TestCase

describe_examples = [('expected =\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <first z="0" y="1" x="2"/>\n <second a="a" b="b"/>\n</test>\n\nactual =\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <nope_it_fails/>\n</test>\n', '<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <nope_it_fails/>\n</test>\n', <keystoneauth1.tests.unit.matchers.XMLEquals object>)]
equivalent_xml = '<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <second a="a" b="b"/>\n <first z="0" y="1" x="2"></first>\n</test>\n'
matches_matcher = <keystoneauth1.tests.unit.matchers.XMLEquals object>
matches_matches = ['<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <first z="0" y="1" x="2"/>\n <second a="a" b="b"></second>\n</test>\n', '<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <second a="a" b="b"/>\n <first z="0" y="1" x="2"></first>\n</test>\n']
matches_mismatches = ['<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <nope_it_fails/>\n</test>\n']
matches_xml = '<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <first z="0" y="1" x="2"/>\n <second a="a" b="b"></second>\n</test>\n'
mismatches_description = 'expected =\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <first z="0" y="1" x="2"/>\n <second a="a" b="b"/>\n</test>\n\nactual =\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <nope_it_fails/>\n</test>\n'
mismatches_xml = '<?xml version="1.0" encoding="UTF-8"?>\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\n <nope_it_fails/>\n</test>\n'
str_examples = [('XMLEquals(\'<?xml version="1.0" encoding="UTF-8"?>\\n<test xmlns="https://docs.openstack.org/identity/api/v2.0">\\n <first z="0" y="1" x="2"/>\\n <second a="a" b="b"></second>\\n</test>\\n\')', <keystoneauth1.tests.unit.matchers.XMLEquals object>)]
test__str__()
test_describe_difference()
test_matches_match()
test_mismatch_details()

keystoneauth1.tests.unit.test_noauth module

class keystoneauth1.tests.unit.test_noauth.NoAuthTest(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

NOAUTH_TOKEN = 'notused'
TEST_URL = 'http://server/prefix'
test_basic_case()
test_noauth_options()

keystoneauth1.tests.unit.test_service_token module

class keystoneauth1.tests.unit.test_service_token.ServiceTokenTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

SERVICE_URL = 'http://service-keystone.example.com/v3'
TEST_URL = 'http://test.example.com/path/'
USER_URL = 'http://user-keystone.example.com/v3'
setUp()
test_invalidation()
test_pass_throughs()
test_setting_service_token()

keystoneauth1.tests.unit.test_session module

class keystoneauth1.tests.unit.test_session.AdapterTest(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

ALLOW = {'allow_deprecated': False, 'allow_experimental': True, 'allow_unknown': True}
INTERFACE = '4d2eee6722eb4b27abd3014a91a2c747'
REGION_NAME = '7fa681afbcb444c9bed8c65de10d0b4a'
SERVICE_NAME = '0dc07f153f5e4d7d89b34ce92914d53a'
SERVICE_TYPE = '8c3e272fd2f14fc6a835f1d647127978'
TEST_URL = 'http://fakeendpoint/'
USER_AGENT = '2703dda6f06e4fbc9fd1d7dbf1a95cfb'
VERSION = '4d509fa60d8946e5af9b1e29504ddd1c'
test_adapter_connect_retries()
test_adapter_get_token()
test_adapter_invalidate()
test_adapter_user_agent_adapter()
test_adapter_user_agent_session()
test_adapter_user_agent_session_adapter()
test_adapter_user_agent_session_adapter_additional()
test_adapter_user_agent_session_adapter_no_app_version()
test_adapter_user_agent_session_adapter_no_client_version()
test_adapter_user_agent_session_override()
test_adapter_user_agent_session_version_on_adapter()
test_additional_headers()
test_additional_headers_overrides()
test_default_microversion()
test_legacy_binding()
test_legacy_binding_non_json_resp()
test_logger_object_passed()
test_methods()
test_nested_adapters()
test_setting_endpoint_override()
test_setting_global_id_on_request()
test_setting_variables_on_get_endpoint()
test_setting_variables_on_request()
test_unknown_connection_error()
test_user_and_project_id()
class keystoneauth1.tests.unit.test_session.AuthPlugin(token='fc6176d3e2ec40828bba2e1de76db9eb', invalidate=True)

Bases: keystoneauth1.plugin.BaseAuthPlugin

Very simple debug authentication plugin.

Takes Parameters such that it can throw exceptions at the right times.

SERVICE_URLS = {'image': {'admin': 'http://image-admin:3333/v2.0', 'public': 'http://image-public:3333/v2.0'}, 'compute': {'admin': 'http://compute-admin:2222/v1.0', 'public': 'http://compute-public:2222/v1.0'}, 'identity': {'admin': 'http://identity-admin:1111/v2.0', 'public': 'http://identity-public:1111/v2.0'}}
TEST_PROJECT_ID = 'aProject'
TEST_TOKEN = 'fc6176d3e2ec40828bba2e1de76db9eb'
TEST_USER_ID = 'aUser'
get_endpoint(session, service_type=None, interface=None, **kwargs)
get_project_id(session)
get_token(session)
get_user_id(session)
invalidate()
class keystoneauth1.tests.unit.test_session.CalledAuthPlugin(invalidate=True)

Bases: keystoneauth1.plugin.BaseAuthPlugin

ENDPOINT = 'http://fakeendpoint/'
PROJECT_ID = '64b573ddc8da4feb8f42d4d6a0604f60'
TOKEN = 'fc6176d3e2ec40828bba2e1de76db9eb'
USER_ID = '815aa0acaa384fc2864aaf85ad0f7aa6'
get_endpoint(session, **kwargs)
get_project_id(session, **kwargs)
get_token(session)
get_user_id(session, **kwargs)
invalidate()
class keystoneauth1.tests.unit.test_session.RedirectTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

DEFAULT_REDIRECT_BODY = 'Redirect'
DEFAULT_RESP_BODY = 'Found'
REDIRECT_CHAIN = ['http://myhost:3445/', 'http://anotherhost:6555/', 'http://thirdhost/', 'http://finaldestination:55/']
assertResponse(resp)
setup_redirects(method='GET', status_code=305, redirect_kwargs={}, final_kwargs={})
test_basic_get()
test_basic_post_keeps_correct_method()
test_history_matches_requests()
test_no_redirect()
test_permanent_redirect_308()
test_redirect_forever()
test_redirect_limit()
class keystoneauth1.tests.unit.test_session.RequestsAuth(*args, **kwargs)

Bases: requests.auth.AuthBase

class keystoneauth1.tests.unit.test_session.SessionAuthTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

TEST_JSON = {'hello': 'world'}
TEST_URL = 'http://127.0.0.1:5000/'
stub_service_url(service_type, interface, path, method='GET', **kwargs)
test_auth_plugin_default_with_plugin()
test_auth_plugin_disable()
test_endpoint_override_does_id_replacement()
test_endpoint_override_fails_to_do_unknown_replacement()
test_endpoint_override_fails_to_replace_if_none()
test_endpoint_override_ignore_full_url()
test_endpoint_override_overrides_filter()
test_logger_object_passed()
test_passed_auth_plugin()
test_passed_auth_plugin_overrides()
test_raises_exc_only_when_asked()
test_reauth_called()
test_reauth_not_called()
test_requests_auth_plugin()
test_service_type_urls()
test_service_url_raises_if_no_auth_plugin()
test_service_url_raises_if_no_url_returned()
test_user_and_project_id()
class keystoneauth1.tests.unit.test_session.SessionTests(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

TEST_URL = 'http://127.0.0.1:5000/'
test_connect_retries()
test_delete()
test_does_not_set_tcp_keepalive_on_custom_sessions()
test_get()
test_head()
test_http_session_opts()
test_json_content_type()
test_logging_body_only_for_specified_content_types()

Verify response body is only logged in specific content types.

Response bodies are logged only when the response’s Content-Type header is set to application/json. This prevents us to get an unexpected MemoryError when reading arbitrary responses, such as streams.

test_logging_cacerts()
test_logs_failed_output()

Test that output is logged even for failed requests.

test_microversion()
test_not_found()
test_patch()
test_post()
test_put()
test_server_error()
test_session_debug_output()

Test request and response headers in debug logs.

in order to redact secure headers while debug is true.

test_session_debug_output_logs_openstack_request_id()

Test x-openstack-request-id is logged in debug logs.

test_set_microversion_headers()
test_ssl_error_message()
test_user_agent()
test_uses_tcp_keepalive_by_default()
class keystoneauth1.tests.unit.test_session.TCPKeepAliveAdapterTest(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

patch(target, name, *args, **kwargs)
patch_socket_with_options(option_names)
setUp()
test_init_poolmanager_with_basic_options()
test_init_poolmanager_with_given_optionsl()
test_init_poolmanager_with_requests_lesser_than_2_4_1()
test_init_poolmanager_with_tcp_keepcnt()
test_init_poolmanager_with_tcp_keepcnt_on_windows()
test_init_poolmanager_with_tcp_keepidle()
test_init_poolmanager_with_tcp_keepintvl()

keystoneauth1.tests.unit.test_token_endpoint module

class keystoneauth1.tests.unit.test_token_endpoint.AdminTokenTest(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

test_token_endpoint_deprecated_options()
test_token_endpoint_options()
class keystoneauth1.tests.unit.test_token_endpoint.TokenEndpointTest(*args, **kwargs)

Bases: keystoneauth1.tests.unit.utils.TestCase

TEST_TOKEN = 'aToken'
TEST_URL = 'http://server/prefix'
test_basic_case()
test_basic_endpoint_case()
test_token_endpoint_user_id()

keystoneauth1.tests.unit.test_utils module

class keystoneauth1.tests.unit.test_utils.UtilsTests(*args, **kwargs)

Bases: testtools.testcase.TestCase

test_get_logger()

keystoneauth1.tests.unit.utils module

class keystoneauth1.tests.unit.utils.TestCase(*args, **kwargs)

Bases: testtools.testcase.TestCase

TEST_DOMAIN_ID = '234ec2b5f2f64ae28bd013e9235e4be8'
TEST_DOMAIN_NAME = '4b0b736a55404fbfa749414886bc0029'
TEST_GROUP_ID = '08846d9ef32e4bc8b9f7c10df27d87d6'
TEST_ROLE_ID = '99b4ba79cb31447da0d110102899cecd'
TEST_ROOT_URL = 'http://127.0.0.1:5000/'
TEST_TENANT_ID = '92184aa41ea54938a6ca337517f92819'
TEST_TENANT_NAME = '14c51c3048394d56a20ef1d5597b82ae'
TEST_TOKEN = 'fc6176d3e2ec40828bba2e1de76db9eb'
TEST_TRUST_ID = '8ffab6248f314b4da407849007ac2f9c'
TEST_USER = '91eee4e2db9a47388295087cf2e8d150'
TEST_USER_ID = '07c656ea56ea4798ab7903d20da01fe7'
assertContentTypeIs(content_type)
assertQueryStringContains(**kwargs)

Verify the query string contains the expected parameters.

This method is used to verify that the query string for the most recent request made contains all the parameters provided as kwargs, and that the value of each parameter contains the value for the kwarg. If the value for the kwarg is an empty string (‘’), then all that’s verified is that the parameter is present.

assertQueryStringIs(qs='')

Verify the QueryString matches what is expected.

The qs parameter should be of the format ‘foo=bar&abc=xyz’

assertRequestBodyIs(body=None, json=None)
assertRequestHeaderEqual(name, val)

Verify that the last request made contains a header and its value.

The request must have already been made.

assertRequestNotInHeader(name)

Verify that the last request made does not contain a header key.

The request must have already been made.

setUp()
stub_url(method, parts=None, base_url=None, json=None, **kwargs)
class keystoneauth1.tests.unit.utils.TestResponse(data)

Bases: requests.models.Response

Class used to wrap requests.Response.

This provides some convenience to initialize with a dict.

text

Module contents

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.