summaryrefslogtreecommitdiff
path: root/ceilometer/tests/gabbi/gabbits/api_events_with_data.yaml
blob: 55698250d8058a7c67f07fee1e6aed16a2eb3c5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# These test run against the Events API with data preloaded into the datastore.
fixtures:
- ConfigFixture
- EventDataFixture

tests:

# this attempts to get all the events and checks to make sure they are valid
- name: get all events
  url: /v2/events
  response_headers:
      content-type: application/json; charset=UTF-8
  response_json_paths:
      $.[0].event_type: cookies_chocolate.chip
      $.[0].traits.[0].value: chocolate.chip
      $.[0].traits.[1].value: '0'
      $.[0].raw.nested.inside: value
      $.[1].event_type: cookies_peanut.butter
      $.[1].traits.[0].name: type
      $.[1].traits.[1].name: ate
      $.[1].raw.nested.inside: value
      $.[2].event_type: cookies_sugar
      $.[2].traits.[0].type: string
      $.[2].traits.[1].type: integer
      $.[2].raw.nested.inside: value

# this attempts to get all the events with invalid parameters and expects a 400
- name: get events with bad params
  url: /v2/events?bad_Stuff_here
  status: 400

# this attempts to query the events with the correct parameterized query syntax
# and expects a matching event
- name: get events that match query
  url: /v2/events?q.field=event_type&q.op=eq&q.type=string&q.value=cookies_chocolate.chip
  response_headers:
      content-type: application/json; charset=UTF-8
  response_json_paths:
      $.[0].event_type: cookies_chocolate.chip
      $.[0].traits.[0].value: chocolate.chip

# this attempts to query the events with the correct data query syntax and
# expects a matching event
- name: get events that match query via data
  url: /v2/events
  request_headers:
      content-type: application/json; charset=UTF-8
  data:
      q:
        - field: event_type
          op: eq
          type: string
          value: cookies_chocolate.chip
  response_headers:
      content-type: application/json; charset=UTF-8
  response_json_paths:
      $.[0].event_type: cookies_chocolate.chip
      $.[0].traits.[0].value: chocolate.chip

# this attempts to query the events with the correct parameterized query syntax
# but a bad field name and expects an empty list
- name: get events that match bad query
  url: /v2/events?q.field=bad_field&q.op=eq&q.type=string&q.value=cookies_chocolate.chip
  response_headers:
      content-type: application/json; charset=UTF-8
  response_strings:
      - "[]"

# this attempts to query the events with the correct data query syntax and
# a bad field name and expects an empty list
- name: get events that match bad query via data
  url: /v2/events
  request_headers:
      content-type: application/json; charset=UTF-8
  data:
      q:
        - field: bad_field
          op: eq
          type: string
          value: cookies_chocolate.chip
  response_headers:
      content-type: application/json; charset=UTF-8
  response_strings:
      - "[]"

# this attempts to query the events with the wrong data query syntax missing the
# q object but supplying the field list and  a bad field name and expects a 400
- name: get events that match bad query via data list
  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634
  url: /v2/events
  request_headers:
      content-type: application/json; charset=UTF-8
  data:
      - field: bad_field
        op: eq
        type: string
        value: cookies_chocolate.chip
  xfail: True
  status: 400

# Get a single event by message_id should return an event
- name: get a single event
  url: /v2/events/fea1b15a-1d47-4175-85a5-a4bb2c729240
  response_headers:
      content-type: application/json; charset=UTF-8
  response_json_paths:
      $.event_type: cookies_chocolate.chip
      $.traits.[0].value: chocolate.chip
      $.traits.[1].value: '0'

# Get a single event by message_id no data is present so should return a 404
- name: get a single event that does not exist
  url: /v2/events/bad-id
  status: 404

# Get all the event types should return a list of event types
- name: get all event types
  url: /v2/event_types
  response_headers:
      content-type: application/json; charset=UTF-8
  response_strings:
      - cookies_chocolate.chip
      - cookies_peanut.butter
      - cookies_sugar

# Get a single event type by valid name, this API is unused and should return a 404
- name: get event types for good event_type unused api
  url: /v2/event_types/cookies_chocolate.chip
  status: 404

# Get a single event type by invalid name, this API is unused and should return a 404
- name: get event types for bad event_type unused api
  url: /v2/event_types/bad_event_type
  status: 404

# Get all traits for a valid event type should return an list of traits
- name: get all traits for event type
  url: /v2/event_types/cookies_chocolate.chip/traits
  response_headers:
      content-type: application/json; charset=UTF-8
  response_json_paths:
      $.[0].type: string
      $.[1].name: ate

# Get all traits for an invalid event type should return an empty list
- name: get all traits names for event type bad event type
  url: /v2/event_types/bad_event_type/traits
  response_headers:
      content-type: application/json; charset=UTF-8
  response_strings:
      - "[]"

# Get all traits of type ate for a valid event type should return an list of
# traits
- name: get all traits of type ate for event type
  url: /v2/event_types/cookies_chocolate.chip/traits/ate
  response_headers:
      content-type: application/json; charset=UTF-8
  response_json_paths:
      $.[0].name: ate
      $.[0].value: '0'

# Get all traits of type ate for a invalid event type should return an empty
# list
- name: get all traits of type for event type bad event type
  url: /v2/event_types/bad_event_type/traits/ate
  response_headers:
      content-type: application/json; charset=UTF-8
  response_strings:
      - "[]"

# Get all traits of type bad_trait_name for a valid event type should return an
# empty list
- name: get all traits of type instances for event type bad trait name
  url: /v2/event_types/cookies_chocolate.chip/traits/bad_trait_name
  response_headers:
      content-type: application/json; charset=UTF-8
  response_strings:
      - "[]"