In various discussion with some of the projects, on this list and at
summit, one of the holdups on people being able to adopt gabbi[1] as a
tool for HTTP API testing in their own stuff was because they had
request handlers that return 202 in response to a POST and the created
resource would not be immediately available (for further testing).
Or similarly time-ambiguous situations.

The latest release of gabbi has a way to handle this. A 'poll' key
has been added to the test language. Here's an example of how it
might be used:

    - name: create something async
      url: /async_creator
      method: POST
      request_headers:
          content-type: application/json
      data:
          name: jones
          abode: bungalow
      status: 202

    - name: poll for created resource
      url: $LOCATION
      poll:
          count: 10 # try up to ten times
          delay: .5 # wait .5 seconds between each try
      response_json_paths:
          $.name: jones
          $.abode: bungalow

The second request will repeat itself every .5 seconds until either
one of the following is true:

* It has tried ten times. In this case, the most recent test
  assertion failure will be raised.
* The test passes.

This is rope that can hang your tests. Be cautious and conservative
in use.

This just went up on pypi as the somewhat bizarrely numbered[2] version
0.100.0[3].

As always if you're thinking of using it and want some help, have
questions, etc please feel free to find me (or jasonamyers).

[1] http://gabbi.readthedocs.org/
[2] I was in a feature freeze at 0.99.x and the need for this feature beat
    the race to get to version 1.0 and I want 1.0 to be the _actual_
    public and frozen API.
[3] https://pypi.python.org/pypi/gabbi

--
Chris Dent tw:@anticdent freenode:cdent
https://tank.peermore.com/tanks/cdent

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to