Added valid values of operator to response body

when an event query is requested with invalid operator as query parameter,
the response will contain valid list of operator as suggestion.

Closes-Bug: #1407378

Change-Id: I82ed0b8b61ed5bf297efe890cee10000f5ffb7a8
This commit is contained in:
Shubham Chitranshi
2015-06-29 10:17:45 +05:30
parent d9b04cd19c
commit 5c02084336
2 changed files with 15 additions and 1 deletions

View File

@@ -169,7 +169,9 @@ def _event_query_to_event_filter(q):
if not i.op:
i.op = 'eq'
elif i.op not in base.operation_kind:
error = _("operator {} is incorrect").format(i.op)
error = (_('operator %(operator)s is not supported. the supported'
' operators are: %(supported)s') %
{'operator': i.op, 'supported': base.operation_kind})
raise base.ClientSideError(error)
if i.field in evt_model_filter:
evt_model_filter[i.field] = i.value

View File

@@ -207,6 +207,18 @@ class TestEventAPI(EventTestBase):
"\'float\', \'string\', \'datetime\']",
resp.json['error_message']['faultstring'])
def test_get_events_filter_operator_invalid_type(self):
resp = self.get_json(self.PATH, headers=headers,
q=[{'field': 'trait_A',
'value': 'my_Foo_text',
'op': 'whats-up'}],
expect_errors=True)
self.assertEqual(400, resp.status_code)
self.assertEqual("operator whats-up is not supported. the "
"supported operators are: (\'lt\', \'le\', "
"\'eq\', \'ne\', \'ge\', \'gt\')",
resp.json['error_message']['faultstring'])
def test_get_events_filter_text_trait(self):
data = self.get_json(self.PATH, headers=headers,
q=[{'field': 'trait_A',