An advantage of consuming keystoneauth is that the application doesn't need to know the details of the authentication sequence to use the library. Currently in testing they are having to provide a specific auth plugin and this means their tests execute this full auth sequence and they have to mock that out. Create a SimpleTestPlugin that has the standard values that an application might be interested in. This can be used in testing instead of a real plugin to remove any network interaction and simplify the authentication component so applications can focus on their problems. We then create 2 fixtures that will mock out functions to load the SimpleTestPlugin instead of a real plugin in application code. The SimpleLoaderFixture will mock out all calls to keystoneauth plugin loading and return the basic plugin, which is going to be sufficient for testing for most applications. The SimplePluginFixutre will mock out a specific function and return a SimpleTestPlugin so that applications can mock out just a specific section of loading code. Change-Id: Ica852dcbd89323b23f1681403f8c57b5399bf4e7
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""
|
|
Produce keystone compliant structures for use in testing.
|
|
|
|
They are part of the public API because they may be relied upon to generate
|
|
test tokens for other clients. However they should never be imported into the
|
|
main client (keystoneauth or other). Because of this there may be dependencies
|
|
from this module on libraries that are only available in testing.
|
|
"""
|
|
|
|
from keystoneauth1.fixture.discovery import * # noqa
|
|
from keystoneauth1.fixture import exception
|
|
from keystoneauth1.fixture.plugin import * # noqa
|
|
from keystoneauth1.fixture import v2
|
|
from keystoneauth1.fixture import v3
|
|
|
|
|
|
FixtureValidationError = exception.FixtureValidationError
|
|
V2Token = v2.Token
|
|
V3Token = v3.Token
|
|
V3FederationToken = v3.V3FederationToken
|
|
|
|
__all__ = ('DiscoveryList',
|
|
'FixtureValidationError',
|
|
'LoadingFixture',
|
|
'TestPlugin',
|
|
'V2Discovery',
|
|
'V3Discovery',
|
|
'V2Token',
|
|
'V3Token',
|
|
'V3FederationToken',
|
|
'VersionDiscovery',
|
|
)
|