[openstack-dev] [qa][keystone] Adding client library related tests to tempest
Adam Young
ayoung at redhat.com
Fri Oct 18 17:49:17 UTC 2013
On 10/18/2013 12:04 PM, Brant Knudson wrote:
> To provide a bit more background... Keystone has a bunch of
> keystoneclient tests for the v2 API. These tests actually "git clone"
> a version of keystoneclient (master, essex-3, and 0.1.1)[0], to use
> for testing. Maybe at some point the tests were just for
> client-server compatibility, but now they're used for more than that;
> for example, they're used for tests that require going through the
> paste pipeline and v2 controller. It's just the quickest way to get
> some tests written. In addition, there's versions of the client tests
> for both the kvs and sql backends.
>
> This causes several problems,
> 1) It looks like we're not keeping the versions to test up-to-date --
> should we checkout supported releases instead?
> 2) "git clone"ing the keystoneclient doesn't work well with parallel
> testing (we have a similar problem in our tests with our "pristine"
> database backup)
> 3) These tests eat up lots of memory which we've gotten complaints about.
>
> Getting v3 API keystoneclient/keystone testing in tempest is going to
> hopefully lead to getting the v2 tests out of Keystone. Thanks to
> Steve for taking this first step!
I was going to try an approach where we used tempest to just call the
code in Keystone as a first step. That was one of the reasons that I
was in favor of moving the Keystone tests into the keystone namespace.
We need to skip the git clone, step, obviously, and I am not certain
about our use of fixtures: we might need to redo these so the sample
data doesn't conflict with what Tempest expects.
>
> For the v3 API, the tests don't use the keystoneclient but instead use
> webtest [1] and the REST API.
>
> [0]
> https://github.com/openstack/keystone/blob/master/keystone/tests/test_keystoneclient.py#L1070
> [1]
> https://github.com/openstack/keystone/blob/master/keystone/tests/test_content_types.py#L69
We'll need V3 client support eventually, and we should use Tempest as
the primary test environement for that.
>
> - Brant
>
>
>
> On Fri, Oct 18, 2013 at 10:59 AM, Dolph Mathews
> <dolph.mathews at gmail.com <mailto:dolph.mathews at gmail.com>> 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.
>
>
> - The intention is to excercise logic which is hard to fully
> test with
> unit or integration tests, and to catch issues like
> incompatibility
> between client and API - e.g keystoneclient tests may pass,
> but we need
> to make sure the client actually works against the real
> keystone API.
>
>
> All of our tests under keystone.tests.test_keystoneclient fall
> into this category as well:
>
> https://github.com/openstack/keystone/blob/a0e26c1882d83989bee3726a5ae08cbe3f32a2b5/keystone/tests/test_keystoneclient.py
>
> https://github.com/openstack/keystone/blob/a0e26c1882d83989bee3726a5ae08cbe3f32a2b5/keystone/tests/test_keystoneclient_sql.py
>
>
> Working on Heat has given me a pretty good insight into the
> python-*client
> API's, as we use them to orchestrate actions with every
> openstack service;
> IMO anything we can do to make these interfaces more robust
> (and catch
> bugs, several of which I found already while writing these
> tests) is a
> good-thing (tm).
>
>
> ++
>
>
> I'd welcome feedback on the patch above, and what will be the most
> acceptable approach to the tempest team for adding these tests.
>
> More links:
>
> https://review.openstack.org/#/c/51559/
> https://review.openstack.org/#/c/51560/
> https://blueprints.launchpad.net/tempest/+spec/keystoneclient-api
>
> Thanks!
>
> Steve
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> --
>
> -Dolph
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131018/d1faec9f/attachment.html>
More information about the OpenStack-dev
mailing list