2281
Comment:
|
2281
|
Deletions are marked like this. | Additions are marked like this. |
Line 72: | Line 72: |
= Helping handlers = | = Available callers = |
Line 74: | Line 74: |
There are a couple of already configured webservice handlers: | There are a couple of already configured webservice callers: |
This page is an introduction to writing and running web service (API) test. |
Writing web service tests
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.
Available callers
There are a couple of already configured webservice callers:
webservice - Read access to everything. write access to all writable attributes. Logged in user salgado.
public_webservice - salgado-read-nonprivate ?!?!?
user_webservice - nopriv-read-noprivate ?!?!?!
anon_webservice - read access to all data available for anonymous users.