TestingWebServices

Not logged in - Log In / Register

Revision 4 as of 2010-04-12 18:12:16

Clear message

Webservices are testes using doctests.

They are more like integration tests, than unit tests.

Unit tests should we added in the model.

Accessing the webservices

GET

Default get method data can be retrieved using webservice.get(URL).jsonBody()

    >>> es = anon_webservice.get('/+languages/es').jsonBody()
    >>> es['resource_type_link']
    u'http.../#language'
    >>> print es['text_direction']
    Left to Right
    >>> print es['code']
    es

Custom get methods:

    >>> permissions = user_webservice.named_get(
    ...     URL, METHODNAME, PARAMETER1=VALUE1,...).jsonBody()

POST

For post we have webservice.post and webservice.named_post

  >>> print webservice.named_post(
  ...     URL, METHODNAME, PARAMETER1=VALUE1,...)
  HTTP/1.1 201 Created
  ...

PATCH

  >>> patch = {u'milestone_link': webservice.getAbsoluteUrl(
  ...                                 '/debian/+milestone/3.1')}
  >>> print webservice.patch(bugtask_path, 'application/json', dumps(patch))
  HTTP/1.1 209 Content Returned...

Delete

    >>> response = webservice.delete('/~eric/fooix/feature-branch')
    >>> print response
    HTTP/1.1 200 Ok
    ...

Security checks

If the permissions are already checked in the Browser code, there is no need to test them again in the Webservices.

Add only specific Webservices security checks.

Helping handlers

There are a couple of already configured webservice handlers:


CategoryTesting