[openstack-dev] [qa][keystone] Adding client library related tests to tempest
David Kranz
dkranz at redhat.com
Fri Oct 18 18:07:27 UTC 2013
On 10/18/2013 01:54 PM, Sean Dague wrote:
> On 10/18/2013 11:59 AM, Dolph Mathews wrote:
>>
>> On Fri, Oct 18, 2013 at 10:34 AM, Steven Hardy <shardy at redhat.com
>> <mailto:shardy at redhat.com>> wrote:
>>
>> Hi all,
>>
>> Starting a thread to discuss $subject, as requested in:
>>
>> https://review.openstack.org/#/c/51558/
>>
>> First a bit of background. I wrote a keystoneclient patch, and
>> ayoung
>> stated he'd like it tested via tempest before he'd ack it:
>>
>> https://review.openstack.org/#/c/48462/
>>
>> So I spoke to ayoung and dkranz on IRC, showing them my local tests
>> for the
>> patch. dkranz suggested creating a "client_lib" directory, where we
>> could
>> build out a more comprehensive set of tests over time, adding to the
>> inital
>> tests related to keystone trusts client additions.
>>
>> A couple of things to note:
>> - These are end-to-end tests, designed to test not only the
>> client, but
>> also the API and keystone backend functionality. So arguably
>> this could
>> just be a scenario test, e.g scenario/keystone/test_v3_auth.py
>>
>>
>> I'd love to be able to run these tests against a wider variety of
>> service configurations (e.g. LDAP!), which tempest is obviously more
>> suitable for.
>
> Realize that today, all the gate is a very simplistic keystone setup.
> If there had been work to bring up different keystone backends with
> the tests we currently have, I think I'd have a different take on
> these tests.
>
> My main focus is how we get the biggest bang for our buck, and up
> until this point we've left direct client testing largely off the
> table because we had API testing (so the API surface should be a known
> quantity) and cli testing, because the cli turned out to be massively
> full of exceptions. But client lib testing feels like it should be
> able to be accomplished without redoing this all over again by
> assuming the contract, mocking to it, and testing in unit tests.
I really don't understand why cli (shell programming language) and the
python clients should be treated differently. The exact same argument
could be made for cli.
>
> Is there a reason we don't think that's viable?
>
> Also, this is probably a good summit session, so if someone wants to
> submit it, I'll land it on the QA track. Realize that if we do expand
> tempest scope to include client libs, we really need to do so somewhat
> systematically to cover all the clients, so we don't end up with just
> a few keystone client tests and that's it.
I put this in the etherpad a few weeks ago "Strategy for avoiding
duplication with unit tests." We need a real strategy for where
different kinds of tests should go. And all this makes it even more
clear that we need a way to separate the functional description of a
test from the environment in which it can run. The decision of whether a
test should run in a real env, or mocked in various ways, should be more
abstracted from the actual test code where possible IMO.
-David
More information about the OpenStack-dev
mailing list