4a10659e23
gabbi 1.7 supports defining url+method in a single line to make syntax less verbose and more specific. Change-Id: Ia4e921bbf0d9475a562beb25810a52609adc47bb
87 lines
2.5 KiB
YAML
87 lines
2.5 KiB
YAML
#
|
|
# Explore and cover resources API with gabbi tests when there are a
|
|
# small number of pre-existing resources
|
|
#
|
|
|
|
fixtures:
|
|
- ConfigFixture
|
|
- SampleDataFixture
|
|
|
|
tests:
|
|
|
|
- name: list all resources
|
|
GET: /v2/resources
|
|
response_json_paths:
|
|
$[0].user_id: farmerjon
|
|
$[0].links[1].rel: livestock
|
|
|
|
- name: get one resource
|
|
desc: get a resource via the links in the first resource listed above
|
|
GET: $RESPONSE['$[0].links[0].href']
|
|
response_json_paths:
|
|
$.resource_id: $RESPONSE['$[0].resource_id']
|
|
|
|
- name: list resources limit user_id
|
|
GET: /v2/resources?q.field=user_id&q.value=farmerjon
|
|
response_json_paths:
|
|
$[0].user_id: farmerjon
|
|
$[0].links[1].rel: livestock
|
|
|
|
- name: list resources limit metadata
|
|
GET: /v2/resources?q.field=metadata.breed&q.value=sheep
|
|
response_json_paths:
|
|
$[0].user_id: farmerjon
|
|
$[0].links[1].rel: livestock
|
|
|
|
- name: list resources limit metadata no match
|
|
GET: /v2/resources?q.field=metadata.breed&q.value=llamma
|
|
response_strings:
|
|
- "[]"
|
|
|
|
- name: fail to get one resource
|
|
GET: /v2/resources/nosirnothere
|
|
status: 404
|
|
|
|
- name: list resource meter links present
|
|
GET: /v2/resources?meter_links=1
|
|
response_json_paths:
|
|
$[0].links[0].rel: self
|
|
$[0].links[1].rel: livestock
|
|
$[0].links[-1].rel: livestock
|
|
|
|
- name: list resource meter links not present
|
|
GET: /v2/resources?meter_links=0
|
|
desc: there is only one links entry when meter_links is 0
|
|
response_json_paths:
|
|
$[0].links[0].rel: self
|
|
$[0].links[-1].rel: self
|
|
|
|
# limit resource results
|
|
|
|
- name: get resources ulimited
|
|
GET: /v2/resources
|
|
response_json_paths:
|
|
$.`len`: 1
|
|
|
|
- name: get resources limited
|
|
GET: /v2/resources?limit=1
|
|
response_json_paths:
|
|
$.`len`: 1
|
|
|
|
- name: get resources double limit
|
|
GET: /v2/resources?limit=1&limit=1
|
|
status: 400
|
|
|
|
- name: get resources filter limit
|
|
desc: expressing limit this way is now disallowed
|
|
GET: /v2/resources?q.field=limit&q.op=eq&q.type=&q.value=1
|
|
status: 400
|
|
response_strings:
|
|
- 'Unknown argument: \"limit\": unrecognized field in query'
|
|
|
|
- name: get resources filter limit and limit
|
|
GET: /v2/resources?q.field=limit&q.op=eq&q.type=&q.value=1&limit=1
|
|
status: 400
|
|
response_strings:
|
|
- 'Unknown argument: \"limit\": unrecognized field in query'
|